|
串口接收数据有问题,接收到了数据,却在不断查询
[复制链接]
我用的单片机是TMP19A61,用C写的。这款单片机的发送buf和接收buf共用一个寄存器。我目前采用查询方式来收发数据。用回环(将TX和RX引脚用一根导线接一起)来测试。我没有用FIFO,而是用double buffer.
接收函数的大概步骤是:
1.查询buf是否有数据(查询状态寄存器中的某位)
2.读取buf寄存器的值
问题是:通过调试器看到明明已经正确接收到数据了,buf寄存器有值了,值也是对的,可是为什么程序却始终都停在查询buf是否有数据这条语句?
大概情况是:
1.因为采用的是回环,我发一个数据,然后马上就接收到一个数据,很奇怪的是:我通过调试窗口都看到接收buf寄存器有值了,并且值是对的,就是我发送的值,可是程序却始终都停在查询buf是否有数据这条语句,搞不懂-------单步执行会这样;换成全速执行,则OK,没有问题。
2.我用串口调试助手测过了,PC发,uart接;uart发,PC接都是对的,可是用回环测为什么不对?
3.我有同事在做USB,USB芯片是CH375,通过串口连接。往CH375发送命令,CH375会返回数据,因为用的是我的UART驱动,结果接收buf接收到的数据是对的,可是程序一直停在查询buf是否有数据这条语句,不管单步还是全速都不行
|
|