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

stm32f030cct6 中断出不来问题

[复制链接]
lilu 提问时间:2018-4-3 08:47 /
本帖最后由 lilu 于 2018-4-3 08:52 编辑

在调试stm32f030cct6时,用了4个串口分别为usart1,2,3,5,同时初始化后,串口3会自发产生中断并进入中断服务函数,中断标志死活清不掉,一直卡在中断服务函数里,不知道怎么回事?大家有遇到过吗?
1.png
2.png
3.png
4.png
5.png
收藏 评论4 发布时间:2018-4-3 08:47

举报

4个回答
maxtch 回答时间:2018-4-3 19:03:40
RXNE 和 TXE 标志位是不能直接清的,你必须要清中断条件(RXNE 的话是从 RDR 读取,TXE 的话是向 TDR 写入)要么就是关掉这个中断。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

feixiang20 回答时间:2018-4-3 22:15:14
借鉴数据手册中提到Set the TE bit in USARTx_CR1 to send an idle frame as first transmission。也就是说一旦使能了TE,芯片会自动地发出了一次数据,并会引起TC_FLAG置位,而想要清除该flag的先决条件是使能了串口。因此,假如在使能串口钱已经使能了串口中断,那程序就一直进入中断了。完成了初始化,那么只要把需要发送的数据填写到发送缓冲区,并且调用一次USART_SendData()把第一个字节发送出去之后,剩下的就交给中断处理。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

bargagebaobei 回答时间:2018-4-4 07:48:05
进去之后 先关掉中断 在处理函数内容,然后再次启动,这样就不会一直在中断里出不来了

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

回答时间:2018-4-4 08:50:24
串口3是卡在发送哥还是接收中断?发送中断的话,需要在发送完成后关闭发送中断使能。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版