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

2020-01-23 14:34发布

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

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

这是main里面的一个循环体,现象是
上位机发送一个abcd,但在while里面单片机向上位机发送bcd还换行。
要是单独做个小程序,在这就不会出错。
这是什么问题呢,都一样的程序
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
33条回答
tigeroser
1楼-- · 2020-01-26 08:50
 精彩回答 2  元偷偷看……
tigeroser
2楼-- · 2020-01-26 12:37
chqin1213 发表于 2014-6-27 16:53
重新编辑了下,看下刚才发给你的,顺便问下。。。。你到底是发还是收。。。。。 ...

上位机发任意信息:字符或者字符串,单片机收。之后判断接收的信息是否有用,----即解析字符串内容
chqin1213
3楼-- · 2020-01-26 14:29
tigeroser 发表于 2014-6-27 16:57
1---没用printf语句,但在51上用过,方法是在网上看的,先ES=0;TI=1强制TI置1,且关中断,因为printf发送 ...

发送16进制数据也会这样?
tigeroser
4楼-- · 2020-01-26 19:51
chqin1213 发表于 2014-6-27 17:00
发送16进制数据也会这样?

是的 接收也是用16进制显示的  才能看到是回车0D 0A 你之前遇到的是什么问题
chqin1213
5楼-- · 2020-01-26 23:56
tigeroser 发表于 2014-6-27 17:12
是的 接收也是用16进制显示的  才能看到是回车0D 0A 你之前遇到的是什么问题 ...

就之前回复你的,我循环发送abcde,上位机收到bcdeabcdeabced。。。。。。
tigeroser
6楼-- · 2020-01-27 05:30
 精彩回答 2  元偷偷看……

一周热门 更多>