usart接收的时候,检测到起始位RXNE置位,设置RXNEIE进入中断 ,但是当数据接受完成,可读取的时候,会在此设置RXENIE,中间没有复位,这样不会导致数据错误码?

2019-07-21 01:02发布


usart接收的时候,检测到起始位RXNE置位,设置RXNEIE进入中断 ,但是当数据接受完成,可读取的时候,会在此设置RXENIE,中间没有复位,这样不会导致数据错误码?




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
it_do_just
1楼-- · 2019-07-21 04:39
RXNE:读数据寄存器非空 (Read data register not empty)
当RDR移位寄存器中的数据被转移到USART_DR寄存器中,该位被硬件置位。如果
USART_CR1寄存器中的RXNEIE为1,则产生中断。对USART_DR的读操作可以将该位清
零。 RXNE位也可以通过写入0来清除,只有在多缓存通讯中才推荐这种清除程序。
小盼abc
2楼-- · 2019-07-21 08:14
 精彩回答 2  元偷偷看……
小盼abc
3楼-- · 2019-07-21 12:49
回复【3楼】229382777@qq.com:
---------------------------------
但是数据手册上有说 在检测到正确起始位后也会RXEN执一    这如何解释
it_do_just
4楼-- · 2019-07-21 17:58
 精彩回答 2  元偷偷看……
小盼abc
5楼-- · 2019-07-21 19:54
回复【5楼】229382777@qq.com:
---------------------------------
你仔细看下上面的图片中画线的部分
小盼abc
6楼-- · 2019-07-21 22:15
回复【5楼】229382777@qq.com:
---------------------------------
usart通信的时候  接受方一直在采样从发送方发送过来的数据   当接受到发送过来的数据起始位时  RXEN将由硬件设置为1  但是当该帧数据传输结束 照数据手册所述  会再次产生RXEN置1行为  这样不会产生错误码

一周热门 更多>