OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7119|回复: 8

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

[复制链接]

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-3-28
在线时间
39 小时
发表于 2015-11-12 09:37:14 | 显示全部楼层 |阅读模式
5金钱

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




最佳答案

查看完整内容[请看2#楼]

RXNE:读数据寄存器非空 (Read data register not empty) 当RDR移位寄存器中的数据被转移到USART_DR寄存器中,该位被硬件置位。如果 USART_CR1寄存器中的RXNEIE为1,则产生中断。对USART_DR的读操作可以将该位清 零。 RXNE位也可以通过写入0来清除,只有在多缓存通讯中才推荐这种清除程序。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-11-12 09:37:15 | 显示全部楼层
RXNE:读数据寄存器非空 (Read data register not empty)
当RDR移位寄存器中的数据被转移到USART_DR寄存器中,该位被硬件置位。如果
USART_CR1寄存器中的RXNEIE为1,则产生中断。对USART_DR的读操作可以将该位清
零。 RXNE位也可以通过写入0来清除,只有在多缓存通讯中才推荐这种清除程序。
我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-3-28
在线时间
39 小时
 楼主| 发表于 2015-11-12 12:54:10 | 显示全部楼层
大神  帮忙解决看下啊  新手疑惑
回复

使用道具 举报

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-3-28
在线时间
39 小时
 楼主| 发表于 2015-11-12 13:16:37 | 显示全部楼层
回复【3楼】229382777@qq.com:
---------------------------------
但是数据手册上有说 在检测到正确起始位后也会RXEN执一    这如何解释
回复

使用道具 举报

15

主题

786

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3223
金钱
3223
注册时间
2015-7-26
在线时间
811 小时
发表于 2015-11-12 15:15:06 | 显示全部楼层
回复【4楼】小盼abc:
---------------------------------
先是通过3、5、7位和8、9、10位来确认起始位,确认无误以后RXEN会置1并产生中断,这完全没有问题啊,当你读取接收到的数据后RXNE会自动清零,你说“可读取的时候,会在此设置RXENIE,中间没有复位”,中间是指什么?
我的博客:http://blog.csdn.net/itdo_just
回复

使用道具 举报

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-3-28
在线时间
39 小时
 楼主| 发表于 2015-11-12 15:58:07 | 显示全部楼层
回复【5楼】229382777@qq.com:
---------------------------------
你仔细看下上面的图片中画线的部分
回复

使用道具 举报

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-3-28
在线时间
39 小时
 楼主| 发表于 2015-11-12 16:07:33 | 显示全部楼层
回复【5楼】229382777@qq.com:
---------------------------------
usart通信的时候  接受方一直在采样从发送方发送过来的数据   当接受到发送过来的数据起始位时  RXEN将由硬件设置为1  但是当该帧数据传输结束 照数据手册所述  会再次产生RXEN置1行为  这样不会产生错误码
回复

使用道具 举报

12

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-3-28
在线时间
39 小时
 楼主| 发表于 2015-11-13 08:10:31 | 显示全部楼层
原子大哥  帮忙解释一下啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-11-13 21:16:16 | 显示全部楼层
帮顶。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 15:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表