串口接收的数据怎么总是少一位

2020-01-23 14:34发布

单独做个程序就正常,这是怎么回事
while(1)
           {
                  if(RI)                                       //查询---串口接收中断标志位
                  {          

                          delay_ms(1000);        //延时---等待串口接收完成
                          Print_Str(RxBuf);                  
                          RI=0;
                  }

这是main里面的一个循环体,现象是
上位机发送一个abcd,但在while里面单片机向上位机发送bcd还换行。
要是单独做个小程序,在这就不会出错。
这是什么问题呢,都一样的程序
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
33条回答
chqin1213
1楼-- · 2020-01-27 09:23
tigeroser 发表于 2014-6-27 17:36
麻烦你看看之前你是怎么解决这个问题的。我当时出现这个 问题是把接收的数据从数组的第二位即RxBuf[1]开 ...

由于问题过去很久,当时我也没记录解决办法,可能的原因就是printf函数中的TI问题。。。。。。。
rain73
2楼-- · 2020-01-27 10:01
刚好我也在做这个芯片的串口通讯,纯中断和环型缓冲区的,完全没有问题。所以还需要在代码中找原因。
tigeroser
3楼-- · 2020-01-27 15:05
rain73 发表于 2014-6-28 18:39
刚好我也在做这个芯片的串口通讯,纯中断和环型缓冲区的,完全没有问题。所以还需要在代码中找原因。 ...

好的 谢谢 我再看看代码

一周热门 更多>