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

STM32中断优先级管理

[复制链接]
贺工 发布时间:2017-10-16 23:44
1:STM32中断优先级:
( J, s* X5 M! L& C$ H) ~- b01:占先式优先级(pre-emption priority)' [, X! D: l8 `+ Z: E$ o8 H( E7 n
高占先式优先级的中断事件会打断当前的主程序/中断程序运行——抢断式优先响应,俗称中断嵌套。
) q- y/ W2 s- ~" l' T02:副优先级(subpriority)2 v9 g2 i: Z* I, ~5 q2 d
在占先式优先级相同的情况下,高副优先级的中断优先被响应;
1 `; H( \- i; |9 i" o( Z在占先式优先级相同的情况下,如果有低副优先级中断正在执行,高副优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应——非抢断式响应(不能嵌套)。7 w* ~, @6 D, |/ i+ ^
03:判断中断是否会被响应的依据
+ ?2 K' d1 F6 O0 U& G0 Y1 f首先是占先式优先级,其次是副优先级;4 Y& M# O0 S3 i8 B% m! c7 O
占先式优先级决定是否会有中断嵌套;/ T- C/ }2 D% r. p% z
Reset、NMI、Hard Fault 优先级为负(高于普通中断优先级)且不可调整。3 x' A; v" j- Q% c3 {) v! a% {' F8 k

9 J4 t, z3 R5 f8 N; \  C

: v5 @+ O5 Y1 F" F9 y6 j2:STM32中断优先级配置! l" B; C6 M% \5 A! {( m3 f& o
每一个中断都有一个专门的寄存器(Interrupt Priority Registers)来描述该中断的占先式优先级及副优先级。在这个寄存器中STM32使用4个二进制位描述优先级(Cortex-M3定义了8位,但STM32只使用了4位)。" J/ w" v$ c: ~# U, f
占先式优先级与副优先级的分配4个描述优先级位有下列5种组合使用方式。“优先级组别”决定如何解释这4位。1 i3 ~7 f0 k; R. @1 X

4 f3 M% h; k8 D1 F3 z 中断优先级组别.png 6 S* B8 o1 ~: m/ {0 f) _' C0 Q1 h7 t
+ H) ~$ \, b* U( q) d: N0 @

9 p9 _" k0 T" N- a9 I/ C
3:STM32中断优先级配置示例
中断优先级配置示例.png

8 H1 O; `5 o4 a: O5 q
4:STM32总中断控制
void __disable_irq(void) // DisableInterrupts 关总中断
void __enable_irq(void) // EnableInterrupts 开总中断
更多精彩内容请关注微信公众号,一起学习一起进步。
或扫码关注
QQ图片20171014213345.png
0 \! H9 Z: ^8 f& m% F; C
# {0 B3 h( p' c2 H
5 |9 C0 H3 Y- m7 m8 X7 \
收藏 1 评论0 发布时间:2017-10-16 23:44

举报

0个回答

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版