STMCU小助手
发布时间:2022-6-13 10:19
|
01. 嵌套向量中断控制器 (NVIC) NVIC 特性 2 f D) c6 _. M5 b A* ^+ R% P 嵌套向量中断控制器 NVIC 包含以下特性:6 H' s3 h* J5 B! i ● STM32F405xx/07xx 和 STM32F415xx/17xx 具有 82 个可屏蔽中断通道,STM32F42xxx和 STM32F43xxx 具有多达 86 个可屏蔽中断通道(不包括 Cortex™-M4F 的 16 根中断线) ● 16 个可编程优先级(使用了 4 位中断优先级) ● 低延迟异常和中断处理9 t8 a1 k/ _( g. e" g3 a& j: C" \ ● 电源管理控制 ● 系统控制寄存器的实现7 c, |* t# s$ H N5 P- G# }/ I1 q 嵌套向量中断控制器 (NVIC) 和处理器内核接口紧密配合,可以实现低延迟的中断处理和晚到中断的高效处理。8 X+ P5 b" S: O& l$ m 02. 外部中断/ 事件控制器 (EXTI)9 I1 j" A$ n% u 外部中断/事件控制器包含多达 23 个用于产生事件/中断请求的边沿检测器。每根输入线都可单独进行配置,以选择类型(中断或事件)和相应的触发事件(上升沿触发、下降沿触发或边沿触发)。每根输入线还可单独屏蔽。挂起寄存器用于保持中断请求的状态线。 EXTI 控制器的主要特性如下:( g4 j; _ P8 \7 u: { ● 每个中断/事件线上都具有独立的触发和屏蔽 ● 每个中断线都具有专用的状态位 ● 支持多达 23 个软件事件/中断请求 ● 检测脉冲宽度低于 APB2 时钟宽度的外部信号。有关此参数的详细信息,请参见STM32F4xx 数据手册的电气特性部分。 . U* h; Z5 P) |& J9 z; U1 | D EXTI框图
& Z `* \0 ]5 O1 ?8 U8 R 唤醒事件管理/ i7 T! v& _9 z+ Z* k: K8 H : J, {/ L0 I- m- p: R J+ W* ^, _' J STM32F4xx 能够处理外部或内部事件来唤醒内核 (WFE)。唤醒事件可通过以下方式产生: ● 在外设的控制寄存器使能一个中断,但不在 NVIC 中使能,同时使能 Cortex™-M4F 系统控制寄存器中的 SEVONPEND 位。当 MCU 从 WFE 恢复时,需要清除相应外设的中断挂起位和外设 NVIC 中断通道挂起位(在 NVIC 中断清除挂起寄存器中)。9 }9 c$ Q9 N) ]- h2 ? ● 配置一个外部或内部 EXTI 线为事件模式。当 CPU 从 WFE 恢复时,因为对应事件线的挂起位没有被置位,不必清除相应外设的中断挂起位或 NVIC 中断通道挂起位。4 p/ c3 W. [# u$ L& I& ` 0 }$ H" m* n8 S" I4 Q ~) P1 G" B$ J 功能说明 ! z- M! M e' d4 d7 ] 要产生中断,必须先配置好并使能中断线。根据需要的边沿检测设置 2 个触发寄存器,同时在中断屏蔽寄存器的相应位写“1”使能中断请求。当外部中断线上出现选定信号沿时,便会产生中断请求,对应的挂起位也会置 1。在挂起寄存器的对应位写“1”,将清除该中断请求。6 J8 z5 g( \* @- K. D" X# Z6 j1 c 8 I' H. h1 k& k ^( u: y2 r 要产生事件,必须先配置好并使能事件线。根据需要的边沿检测设置 2 个触发寄存器,同时在事件屏蔽寄存器的相应位写“1”允许事件请求。当事件线上出现选定信号沿时,便会产生事件脉冲,对应的挂起位不会置 1。 通过在软件中对软件中断/事件寄存器写“1”,也可以产生中断/事件请求。 硬件中断选择0 ~. b. v4 D) \8 _ 要配置 23 根线作为中断源,请执行以下步骤: ● 配置 23 根中断线的屏蔽位 (EXTI_IMR)" q; Q4 ]! G j ● 配置中断线的触发选择位(EXTI_RTSR 和 EXTI_FTSR)- W4 \9 G$ C) N; [1 X, l3 g ● 配置对应到外部中断控制器 (EXTI) 的 NVIC 中断通道的使能和屏蔽位,使得 23 个中断线中的请求可以被正确地响应。 @( o! m, _; P, I/ K 硬件事件选择 要配置 23 根线作为事件源,请执行以下步骤:1 n/ g% p" I8 k2 I' m9 p' u ● 配置 23 根事件线的屏蔽位 (EXTI_EMR). c* C7 H3 i( r' b' ]! N5 D& T ● 配置事件线的触发选择位(EXTI_RTSR 和 EXTI_FTSR) 软件中断/ 事件选择 可将这 23 根线配置为软件中断/事件线。以下为产生软件中断的步骤。9 v+ c1 A) M4 r9 N9 p, a# i ● 配置 23 根中断/事件线的屏蔽位(EXTI_IMR、EXTI_EMR)8 L- A G; v* V7 g* k ● 在软件中断寄存器设置相应的请求位 (EXTI_SWIER) + K( H U" x' k' h. z R4 H4 Z 外部中断/ 事件线映射 多达 140 个 GPIO(STM32F405xx/07xx 和 STM32F415xx/17xx)通过以下方式连接到 16 个外部中断/事件线: 0 U* l X! b4 @
7 z/ e% M- ]' {& n+ u 另外七根 EXTI 线连接方式如下: ● EXTI 线 16 连接到 PVD 输出 ● EXTI 线 17 连接到 RTC 闹钟事件 ● EXTI 线 18 连接到 USB OTG FS 唤醒事件 ● EXTI 线 19 连接到以太网唤醒事件 ● EXTI 线 20 连接到 USB OTG HS(在 FS 中配置)唤醒事件 ● EXTI 线 21 连接到 RTC 入侵和时间戳事件 ● EXTI 线 22 连接到 RTC 唤醒事件 ' e6 u" S5 d. ^: k: B9 C 03. EXTI寄存器 3.1 中断屏蔽寄存器 (EXTI_IMR) Interrupt mask register 偏移地址:0x007 t. `# Z' A- B' P. X$ R; E6 F 复位值:0x0000 00007 B7 [5 J# o/ |" ~- @
3.2 事件屏蔽寄存器 (EXTI_EMR)8 k2 p- e% E2 Q3 i% J+ c Event mask register7 R5 h8 {4 f" N4 M3 q 偏移地址:0x045 u& U% v- d- e3 T2 q6 e+ w6 C 复位值:0x0000 0000 * g* j& z2 F8 Z" n! N) U
5 x) ~1 j$ \. @* X 3.3 上升沿触发选择寄存器 (EXTI_RTSR)# q( G+ G. C! @9 n7 H Rising trigger selection register9 m# J0 G' Z; f 偏移地址:0x08 复位值:0x0000 0000
3.5 下降沿触发选择寄存器 (EXTI_FTSR)( g) J$ r5 g3 l9 s5 u+ A* p# ?4 ~" r Falling trigger selection register 偏移地址:0x0C( R* `+ n0 u4 |; y" L 复位值:0x0000 0000 ) K. \, ` |- X% T' p8 s8 L) W
3.6 软件中断事件寄存器 (EXTI_SWIER) Software interrupt event register 偏移地址:0x10 复位值:0x0000 0000$ I3 D z# i3 X9 f
* H! K! C' K* e, D x# Q 3.7 挂起寄存器 (EXTI_PR)5 p! M& N; a2 l2 x" b; Z Pending register5 ^+ X2 I7 W8 y 偏移地址:0x14 复位值:未定义4 s! A- b$ K/ H+ A/ A% { " ^) l4 F6 R' Q/ r; f
( f" @9 [$ e: E$ M) o! q 04. EXTI寄存器映射
5 k% J: t% Q7 a0 `/ Q + H% L( T$ A9 O4 g2 p 6 Q6 t! h' S. T+ V8 i o8 P |
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版