请单片机高手帮我简述下“串行接口通讯程序设计的基本步骤”?

 我来答
stonespoon
推荐于2017-05-18
知道答主
回答量:24
采纳率:0%
帮助的人:22.5万
展开全部
1 初始化串口通讯
2 定义发送函数和接收函数
这里有一个我做的两个串口的利用单片机做交换机做聊天工具的代码片段,希望你有用
初始化函数
void Serial()
{
TMOD=0x20;TH1=0xFD;TL1=TH1;
SCON=0x50;TR1=1;ES=1;EA=1;
BRT=0xFD;S2CON=0x50;AUXR=0x11;IE2=0x01;
}
发送函数
void Send1(unsigned char SByte)
{
ES=0;
IE1=0;
TI=0;SBUF=SByte;
while(!TI);
TI=0;
IE1=1;
ES=1;
}
void Send2(unsigned char SByte)
{
unsigned char temp;
IE2=0;
S2CON=S2CON&0xfd;
S2BUF=SByte;
do
{
temp=S2CON;temp=temp&0x02;
}
while(temp==0);
S2CON=S2CON&0xfd;
IE2=1;
}
接收函数
void Read1() interrupt 4
{
if(RI)
{
RI=0;
}
if(SBUF=='$') {R1[0]='$';cnt1=1;}
else if(cnt1>0&&SBUF=='@') {
R1[cnt1++]='@';flag1=1;
}
else if(cnt1>0) R1[cnt1++]=SBUF;
else cnt1=0;
}
void Read2() interrupt 8
{
unsigned char k;
k=S2CON;k=k&0x01;
if(k==1)
{
S2CON=S2CON&0xfe;
}
if(S2BUF=='$'){ R2[0]='$';cnt2=1;}
else if(cnt2>0&&S2BUF=='@') {
R2[cnt2]='@';
cnt2++;flag2=1;
}
else if(cnt2>0) R2[cnt2++]=S2BUF;
else cnt2=0;
}
事实上,串口通信所用的函数就这几个,至少格式都一样,应用的时候只需要更改一点点就行了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式