你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F429NIH的USART2的问题

[复制链接]
小虾丁 提问时间:2017-8-7 10:24 /
这几天遇到一个很奇怪的问题,使用STM32F429NIH的USART2,只使能接收中断,发现收到数据后,能顺利进入到中断服务函数,但观察状态寄存器,发现RXNE位并没有被置位,被置位的是IDLE位。(如果不使能接收中断,是不会进入中断服务函数的)。 使用USART1则没有这个问题。想请教下大家有没有遇到这个问题?是不是STM32F429的USART2自身有缺陷呢?

IAR上观察USART2的相关寄存器

IAR上观察USART2的相关寄存器
收藏 1 评论4 发布时间:2017-8-7 10:24

举报

4个回答
小虾丁 回答时间:2017-8-8 09:09:38
我自己解答一下: 单步调试是观察不到RXNE的置位状态的,至于为什么,我就不知道了。
无薪税绵 回答时间:2017-10-18 09:44:22
答案在这里:http://www.wisearm.com/articles/201305652.html

ORE:过载错误
当RXNE还是1的时候,当前被接收在移位寄存器中的数据要往RDR寄存器中传送时,硬件将该位置位。如果USART_CR1中的RXNEIE为1的话,则产生中断。由软件序列将其清零(先读USART_SR,然后读USART_CR)。
0:没有过载错误;
1:检测到过载错误。
注意:该位被置位时,RDR寄存器中的值不会丢失,但是移位寄存器中的数据会被覆盖。如果EIE位被设置,在多缓冲器通信模式下,ORE标志置位会产生中断的。

第二种情况,就是收到数据后,RXNE本来是已经置位了,但在调试到下一条语句的时候,不管下一条语句是什么,在执行之前,RXNE自动归零了。

评分

参与人数 1ST金币 +5 收起 理由
zero99 + 5 很给力!

查看全部评分

wofei1314 回答时间:2017-10-18 09:52:49
学习学习~
Denvice 回答时间:2017-10-18 09:53:18
中断标志位通过断点来看不准确,曾经我就遇见过类似问题,别设置断点,通过全局变量保存相关的寄存器,再去查看。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版