串口中断读和普通读数据不一样

[复制链接]
 楼主| hsh88761839 发表于 2012-8-24 15:48 | 显示全部楼层 |阅读模式
以前用串口中断读的数据没错。现在在调试升级程序,屏蔽了中断,直接读的,然后发现串口发来的数据出错了,我很困惑。
 楼主| hsh88761839 发表于 2012-8-24 18:08 | 显示全部楼层
而且接下来直接打印串口的数据也发生了问题,打印代码如下
        while(1)
        {
                while(ri_u0c1 == 0){}
                ch = (u08)u0rbl;
                int k=0;k++;
                if((k%16)==0){DBG_MSG("\r\n");}//打印换行
                DBG_MSG("%X",ch);//打印串口获取的数据
            }
现象:
//打印没有加逗号的数据
0xE10x610x000x000x000x300x300x310x000x000x000x000x000x000x00
0x2E0x300x000x000x000x080x000x000x000x000xDF0x000x000x000x000x00
0x000x000x230x410x000x890x000x000x000x000x000x000x2F0x000x000x00
0x000x000x800xFE

//打印逗号的数据
0xE1,0x83,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x2E,0x31,0x00,
0x00,0x08,0x00,0x00,0x00,0xDF,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x00,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xFE,
airwill 发表于 2012-8-25 10:33 | 显示全部楼层
怀疑对状态位的判断没有处理好
flion 发表于 2012-8-29 12:21 | 显示全部楼层
你的串口数据序列的每个字节发送的间隔是多少?还是连续的?
查询法来做的话,连续的序列可能会不准确,除非你的单片机速度超快
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

35

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部