你好,游客 登录 注册 搜索
背景:
阅读新闻

关于STM32空闲中断

[日期:2017-12-23] 来源:Linux社区  作者:gexin [字体: ]

在使用串口接受字符串时,可以使用空闲中断(IDLEIE置1,即可使能空闲中断),这样在接收完一个字符串,进入空闲状态时(IDLE置1)便会激发一个空闲中断。在中断处理函数,我们可以解析这个字符串。

需要注意的是,IDLE标志位需要软件清零,否则由于会不断进入中断,而使正常程序无法运行。当再次收到数据时(即RXNE再次置1),等到空闲便会重新进入中断。

在STM32F4中,IDLE标志位清零的过程是:先读SR,再读DR寄存器。

而在STM32L0中, idle标志清除的过程是:对ICR寄存器的IDLECF位写1

切记使用正确的方式清零IDLE标志位,不同系列的清零方式有可能不同!在移植时需要注意,我将F4的程序移植到L0上时,忽略了这个问题找了很久才找到问题根源。

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-12/149739.htm

linux
相关资讯       STM32  STM32空闲中断  空闲中断 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款