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

STM32的外部中断(寄存器控制)

[复制链接]
STMCU小助手 发布时间:2022-8-24 18:00
我感觉stm32的外部中断都是大同小异的,因此我以stm32g474为例,配置一下外部中断。举例引脚: PE5
+ K7 t/ _: `# p' O8 h# W2 x* l9 g- h* R$ `, g4 P, J" m0 z
配置引脚为输入模式(GPIOx_MODER);- E* b6 r) B6 D! H' B5 Q
配置触发模式(上升沿/下降沿);
' A( B; x1 d) r5 `配置EXTI的中断屏蔽寄存器(EXTI_IMR);
# R. f9 |9 k0 h# s; m配置具体触发引脚(SYSCFG_EXTICR);. S; s! c+ f3 F! W$ t4 Q
配置中断允许(ISER);(当然也可以配置优先级分组,我这里不需要,因此省略)% [1 B% M2 m' o; O
首先看EXTI的中断/事件框图:$ Q, L- k6 s; F! k3 w0 [
6 y* i( d. V- q/ L
20200923142607247.png
) G$ F# V) A& E) x1 W
& a$ I/ u" w$ \( n3 B! o0 I要想触发中断,首先经过“边沿检测器”,而边沿检测器需要配置上升沿检测还是下降沿检测。然后通过或门,可以看到或门的另一个输入连接着“软件中断事件寄存器”,这个寄存器可以不用管,然后就是 与上一个 “中断屏蔽寄存器”,最后连接到“中断挂起寄存器”,因此可以看到触发中断需要配置“边沿检测器”和“中断屏蔽寄存器”就可以触发中断了(唤醒和事件也以此类推)。以PE5举例:
" W) `1 ^! ~5 j6 p; ?. E' p$ G: a( d- K0 L, o1 r$ e8 }
  1. EXTI->RTSR1 |= 0x0020;5 \4 m& ^3 B+ ?
  2. EXTI->IMR1 |= 0x0020;
复制代码
  [: k6 @5 n+ P  A3 J) V6 c
配置完之后发现并不能进入中断,那是由于中断允许位没有配置。由于是PE5,那么该引脚属于EXTI5-line,在STM32G4系列向量表中找到EXTI5:
! q) l( Z6 j5 ~( |5 M/ U8 S* B" O( E
$ E1 u; }! R- N$ d 2020092314534189.png
# W7 ]* }/ }6 `! P0 S' e4 g9 a" d0 Z& i, H- m$ X
表中说EXTI的lin5~9都共用这一个向量,那就是它了。配置ISER寄存器的第22位。0 M3 T) S8 q2 }, e+ F, s: v* w, R
) V. ?0 X( f, U
  1. NVIC->ISER[0] = 0x00800000;
复制代码

, X% Z9 W/ W! ~% B) W; S* q2 [编译运行,发现PE5的上升沿不能进入中断,PA5的上升沿可以,可能还有个选择端口的寄存器,再看手册:2 A7 x, F' h& g, f+ R6 Z( ?

. H) s; C1 E$ B- R( f  @) Y3 { 20200923145843258.png 0 m: `3 N0 E1 R5 l

7 D' e, B  [: V嗷嗷,还要配置SYSCFG_EXTICR寄存器啊,康康寄存器说明:
: ?! [0 q* ]- x1 y1 d8 t- s& @1 l8 T. ^. J4 K
2020092315013076.png # b+ I5 Z4 J' w/ a1 b

3 \# e' ]. }6 K6 ]* q* l) h# z& M 20200923150213395.png ( y  _6 Z9 a! A) z8 N" Y0 r$ l

- p. f7 [5 C% ~2 h" s9 sPE5,那就将这个寄存器配置为0x00000040:
  1. SYSCFG->EXTICR[1] = SYSCFG_EXTICR2_EXTI5_PE;
复制代码

  O; Z7 {' Q1 U. U3 ]6 MOK,这样就可以通过PE5顺顺利利地进入中断了,中断函数名称不确定的话可以在“.s”文件中找:7 g3 l$ F! F1 z9 m8 T

6 V, o7 c7 d: _ 20200923150620161.png
( r- J- ]7 {) u( K
; g2 y0 i/ a7 M: _8 zOK,结束垃圾流水账。, c) C- ]( I7 I4 g
————————————————
7 n( x1 _! q! ^1 q+ `9 u' `转载:Vice Versa XL. l" e4 @# k1 P. a/ j  Z  _( P
+ N3 O) R/ f4 O7 ~
赞 收藏 评论0 发布时间:2022-8-24 18:00

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版