凡亿教育-许媛
凡事用心,一起进步
打开APP
公司名片
凡亿专栏 | 定时器中断进不去,别只核对寄存器
定时器中断进不去,别只核对寄存器

嵌入式调试时经常遇到反常情况,定时器的使能位、中断优先级都按手册配置完成,运行后完全进不了中断服务函数,反复读寄存器值也显示配置正确。问题大多不是参数写错,是时钟和硬件的隐性细节没处理到位。

4..png

1. 定时器外设时钟没开

很多MCU的定时器时钟默认处于关闭状态,单独配置定时器寄存器不会自动开启时钟。

外设时钟门控没解锁,定时器本身根本没有工作时钟,自然无法触发中断请求。

2. 更新中断标志没清

定时器初始化前,硬件自动置起了更新中断标志位。

配置完成后这个旧标志位没有手动清零,中断会直接被硬件屏蔽,后续新的计数事件无法触发中断。

3. 全局中断没打开

部分工程默认关闭了CPU层面的全局中断总开关。

即使定时器外设的中断全部配置完成,中断信号也无法送到CPU内核,自然跳不到中断服务函数。

4. 快速定位修复

先读取定时器的SR状态寄存器,确认计数溢出标志位是否正常置起。

按顺序开启外设时钟、清除旧中断标志、打开全局中断,定时器中断就能正常触发。


本文凡亿教育原创文章,转载请注明来源!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论