打印

关于串口多字节收发的一个奇怪问题。

[复制链接]
705|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yzcook|  楼主 | 2018-5-28 16:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
yzcook|  楼主 | 2018-5-28 16:25 | 只看该作者
这是程序


uchar num = 0;
uchar flag=0;
uchar i;
uchar RBuf[4] = {0x00,0x00,0x00,0x00};

/*------------------主程序--------------------*/
void main(void)
{       
        uchar key = 0;
        ConfigUART();
       
       

        while(1)
        {
                if(num == 4)  flag = 1;
                if(flag == 1)//当接收到数据
                {
                        ES = 0;//关闭串口中断
                        for(i=0;i<4;i++)
                        {
//                                SBUF = RBuf[i];
//                                while(!TI); TI = 0;
         SendByte(RBuf[i]);
                        }                                                       
                        ES = 1;
                        flag = 0;
                        num = 0;
                }
//        cmdRec();
                if((RBuf[0] == 0x1b)&&(RBuf[1] == 0x5b)&&(RBuf[2] == 0x2f)&&(RBuf[3] == 0x31))
                        firstvoice();
                if((RBuf[0] == 0x1b)&&(RBuf[1] == 0x5b)&&(RBuf[2] == 0x2f)&&(RBuf[3] == 0x32))
                        secondvoice();
                if((RBuf[0] == 0x82))
                        lcd_clr();
//                if((RBuf[0] == 0x81))
               
               
               

        }
}




void Uart_Isr() interrupt 4 using 1
{       
        if(RI)
        {       
          RBuf[num] = SBUF;
                while(!RI);
                RI = 0;
                num++;
        }

使用特权

评论回复
板凳
yzcook|  楼主 | 2018-5-28 16:30 | 只看该作者
本帖最后由 yzcook 于 2018-5-28 16:36 编辑

用上面的程序在串口实验的时候出现了一个奇怪的现象
在下载程序后的第一次发送数据时会出现这种情况  接收到的第一个数据会出现 E9 但是这个数据并不是我发出去的。
然后第二次发送才接收正常
很奇怪 大神们能否解答一下


使用特权

评论回复
地板
yzcook|  楼主 | 2018-5-28 16:33 | 只看该作者
然后我问了别人 别人帮我在程序里面加了个延迟 就能正常接收。

只是在这里加了个1MS的延迟 , 他说可能是芯片BUG 具体也不太清楚。

使用特权

评论回复
5
chunyang| | 2018-5-29 10:43 | 只看该作者
这是你编程有误,非芯片bug。加延时只是掩盖了错误,并非正确的解决之道。好好查程序吧。

使用特权

评论回复
6
hcn001| | 2018-5-29 16:22 | 只看该作者
发送数据之前先把TI=0给清除下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

84

帖子

0

粉丝