hal库中断
参考:
正点原子NVIC
NVIC
基本概念
stm分抢占优先级和响应优先级
抢占优先级高优先级可以打断低优先级中断
响应优先级高优先级不能打断低优先级中断
相同优先级中断按自然优先级(中断号)顺序执行
中断号位置在 ‘hal库相关函数’ 处讲解
相关寄存器
hal库相关函数
位置:
1 | /* |
中断函数位置参考:中断向量表->中断向量表位置
中断号位置
中断向量表
基本概念
存储中断服务函数的地址
中断向量表位置
内核中断
外设中断
hal库回调函数
处理机制
中断服务函数位置参考:中断向量表->中断向量表位置
回调函数是弱定义,系统在回调函数中没有实现,需要在用户程序中重写
步骤:
- 在需要处理中断的中断函数中写入对应中断处理公共函数(自己写)
- 中断处理公共函数清除相应标志位,并调用对应回调函数处理中断(hal库已经写好,无需改动)
- 然后重写相应回调函数,将需要的功能在回调函数中实现(自己写)
本质:系统触发中断进入中断函数->自己在中断函数中写入中断处理公共函数->
中断处理公共函数根据中断的内容调用对应的回调函数,并清除相应标志位->
自己在回调函数中实现需要的功能
hal库各外设回调函数位置
在外设对应.h文件中按ctrl+F
搜索Callback查找相应回调函数
搜索IRQHandler查找对应中断处理公共函数位置
搜索方法:
回调函数初步搜索结果:
根据初步搜索结果详细搜索实际回调函数:
中断处理公共函数:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 shaplus's blog!
评论