STM8 UART1 接收数据“0x00”报溢出错误

2019-12-18 18:51发布

最近在学习使用STM8AF5288的芯片,遇到个奇怪的问题:使用UART中断接收数据,当接收的数据是0x00时,芯片检测到溢出错误,当接收的数据不是0x00时,没有溢出错误,数据正常接收。刚开始怀疑是溢出错误报出之后一直进中断的原因,所以使用手册的方法清除溢出标志(先读状态寄存器,再读数据寄存器),但是溢出错误仍然报出;困扰了很久,决定问问吧友,有遇到类似问题的吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
liujinhan
1楼-- · 2019-12-18 20:54
看手册,清中断
wangjiangfeng
2楼-- · 2019-12-18 23:43
liujinhan 发表于 2018-5-2 11:37
看手册,清中断

我按照手册上面的方法清除了溢出标志(先读SR,再读DR),如下,我在溢出中断中这样写,用orSR记录SR清除之前的状态,用corSR记录SR清除之后的记录。
orSR = UART1->SR;
temp = UART1->DR;
corSR = UART1->SR;
运行了之后,orSR中有溢出标志,corSR中没有溢出标志,说明我已经清除成功了,但是下一个0x00过来,还是会报溢出。
liujinhan
3楼-- · 2019-12-19 02:58
清除所有错误标志
jjj
4楼-- · 2019-12-19 07:44
 精彩回答 2  元偷偷看……
wangjiangfeng
5楼-- · 2019-12-19 12:25
liujinhan 发表于 2018-5-2 12:02
清除所有错误标志

问题找到了,我是在一个板子上做的测试:TX定时发送数据,RX中断接收数据,TX脚和RX脚之间短接。询问了一下老司机,他们觉得直接将TX脚和RX脚短接,可能会有问题,建议使用两个板子测试:一个板子负责发,一个板子负责接。经过测试,发送数据"0x00",确实没有溢出错误了。 也多谢您的建议,学习了。
wangjiangfeng
6楼-- · 2019-12-19 12:49
jjj 发表于 2018-5-2 12:52
参考2楼

多谢你的建议,2楼的哥们说的没有错,可能是我描述的不清楚,问题已解决,多谢

一周热门 更多>