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

2020-01-23 14:34发布

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

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

这是main里面的一个循环体,现象是
上位机发送一个abcd,但在while里面单片机向上位机发送bcd还换行。
要是单独做个小程序,在这就不会出错。
这是什么问题呢,都一样的程序
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
34条回答
tigeroser
2020-01-25 12:28
tigeroser 发表于 2014-6-27 15:52
这是程序中的串口片断:
void Clear_RxBuf()
{

找到了我以前写的一个关于串口接收字符串的例程

/*====================================问题==================================================
  在中断中接收的字符是从tabl[0]存入的,输出时从tabl[0]能输出接收到的第一个字符,
  
  但是上位机显示一个空格 若是从tabl[1]输出则正常,字符串多一个位放所以要定义n+1位的数组?

  复位时才能接收数据  不是初始化液晶的问题
  =========================================================================================*/

一周热门 更多>