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

2019-12-18 18:51发布

最近在学习使用STM8AF5288的芯片,遇到个奇怪的问题:使用UART中断接收数据,当接收的数据是0x00时,芯片检测到溢出错误,当接收的数据不是0x00时,没有溢出错误,数据正常接收。刚开始怀疑是溢出错误报出之后一直进中断的原因,所以使用手册的方法清除溢出标志(先读状态寄存器,再读数据寄存器),但是溢出错误仍然报出;困扰了很久,决定问问吧友,有遇到类似问题的吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
wangjiangfeng
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过来,还是会报溢出。

一周热门 更多>