单片机串口接收多字节数据

2019-07-16 03:41发布

通过串口调试助手向单片机发送11字节数据,帧头为16进制 05,00,00,
我的程序收不到数据是什么情况??求帮助
void Com_Service(void) interrupt 4
{
uchar j;
RI=0;
rcv_dat[j]=SBUF;
if(j==0&&rcv_dat[j]==0x05)
   {j=1;}
   else if(j==1&&rcv_dat[j]==0x00)
   {j=2;}
   else if(j==2&&rcv_dat[j]==0x00)
   {j=3;
   for(j=3;j<11;j++)
   {rcv_dat[j]=SBUF;}
    Receive_Bflag = 1;
   }
  
   else
   {
   j=0;
   }
   
  ES=0;//关中断,数据发送完成以后再开中断
  
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
dull2011
1楼-- · 2019-07-17 11:06
学习了
心宇(语)
2楼-- · 2019-07-17 16:02
{:10:}{:10:}{:10:}
juxun001
3楼-- · 2019-07-17 20:50
 精彩回答 2  元偷偷看……
泽子豆腐
4楼-- · 2019-07-18 01:50
if(j==0&&rcv_dat[j]==0x05)
   {j=1;}
   else if(j==1&&rcv_dat[j]==0x00)
   {j=2;}
   else if(j==2&&rcv_dat[j]==0x00)
这几个判断条件是干嘛用的。
budor
5楼-- · 2019-07-18 03:40
for循环那里传送多位数据好像有点问题
Dennis789
6楼-- · 2019-07-18 06:59
可以用C自带的标准函数库:stdio.h中 printf()函数;

一周热门 更多>