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

STM32L4的串口接收中断问题

[复制链接]
penghao 提问时间:2016-4-14 14:37 /
     在STM32L4上跑FreeRTOS,现在只建立一个串口接收任务,任务是接收数据并将接收到数据打印出来,配置串口为中断接收,外部隔一小段时间发送数据到串口。    在调试过程中,发现只要在任务中设置个断点,然后继续运行的话发现程序一直在中断中跳不出来。如果不设断点全速运行的话,程序正常。初步怀疑是由于外部一直有数据,导致触发多次中断。但是如果运行到断点后停止外部的发送数据,从断点开始运行还是一直在中断中。我试了uart4和usart2,都是这样,不知道有没有谁也遇到过这种问题,出现这种情况的原因大概是什么。
收藏 评论3 发布时间:2016-4-14 14:37

举报

3个回答
废鱼 回答时间:2016-4-14 17:54:40
是HAL库吗?如果是,检查一下错误标志位,然后根据情况重新初始化串口。
penghao 回答时间:2016-4-14 22:29:59
安 发表于 2016-4-14 17:54
是HAL库吗?如果是,检查一下错误标志位,然后根据情况重新初始化串口。

嗯 是基于HAL库上的,出现这种情况时发现OVERRUN被置位,裸机程序下将串口寄存器中的USART_CR3中OVRDIS置1,取消OVERRUN的检测,上面描述的情况不再出现,但是在带freertos时,USART_CR3中的OVRDIS置1不了,估计程序哪又有问题。
废鱼 回答时间:2016-4-15 09:20:53
不用取消检测,判断到该情况时,可以重新初始化串口。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版