EXTI外部中断介绍(内置1.中断系统+2.中断执行流程+3.STM32中断+4.NVIC基本结构+5.NVIC优先级分组+6.EXTI简介+7.EXTI基本结构...)

简介: EXTI外部中断介绍(内置1.中断系统+2.中断执行流程+3.STM32中断+4.NVIC基本结构+5.NVIC优先级分组+6.EXTI简介+7.EXTI基本结构...)

1.中断系统:


3a1010643b2849f4b40f08f1bcd19b25.png


2.中断执行流程:


9d6c88b933854f34abff70224c592106.png


注:右图中主程序不需要调用中断执行函数,当中断来临时,硬件自动调用。


3.STM32中断:


a501e978dc8841a386d949022bc17319.png


注:外设可申请中断的主要是EXTI外部中断,TIM定时器,ADC模数转换器,USART串口,SPI通信,IIC通信,RTC实时时钟外设。


灰色部分中断不需要掌握,了解即可,一般使用不到。


如:WWDG看门狗系统中断,若系统卡顿,则激活看门狗系统,使系统重启。


PVD电源电压监测中断,当电源电压没电时,激活中断。


详情放大看表,不再赘述。


中断函数的地址是不固定的,但是中断跳转只能跳转到固定位置,所以需要定义固定的地址列表,存放中断函数地址。如果发生中断,通过访问固定的地址列表得到中断函数地址,进而得到中断函数。


注:C语言不需要考虑该问题。


4.NVIC基本结构:


50cd55213f2542d89aba2c72fbb2dca8.png


NVIC又叫嵌套中断向量控制器。分配中断优先级和管理中断。


作用:减少对CPU的接线口,使CPU能够独立出来。


5.NVIC优先级分组:


c9b8ff326df446cc87275ad0ee17aceb.png


优先级寄存器的某一位(该位只可能是0~15)的值越小,优先级越高。


优先级寄存器的4位分配可以是:抢占优先级0,响应优先级4;抢占优先级1,响应优先级3等等5种形式。


举个听过的例子:医生正在给某一个病人看病,其他病人排队。


响应优先级:有病人在排队等待时可以类似于"插队",排到别人前面。


抢占优先级:跳过排队,直接"插队"到正在看病的病人前面,中断正在看病的人,自己先开。


值越小,优先级越高。


6.EXTI简介:


954146ffbc16427fac5a8259698daffe.png


即:引脚发生变化,引起中断。


上升沿:引脚从低电平变为高电平的瞬间触发中断。


下降沿:引脚从高电平变为低电平的瞬间触发中断。


双边沿:高电平,低电平均可发生中断。


软件触发:程序只要执行相应代码,就会触发中断。


相同的Pin不能同时触发中断解释:如PA1,PB1,PC1不能同时触发。


触发相应方式解释:引脚电平(也可以是软件)触发中断。事件响应触发别的外设操作。


7.EXTI基本结构:


cef144634f2341df917b65f80903d64a.png


解释:GPIOA,GPIOB,GPIOC三个加起来有48个线,但是GPIO只能允许16根线(EXTI也介绍过),因此,AFIO作用就是在GPIO相同位中选择其中一个起作用,(如PA1,PB1,PC1选择PB1),也印证了EXTI基本原理。


注:EXTI-->NVIC时,EXTI9_5,EXTI5_10是一个中断,所以需要具体情况再次分析。


其他外设即是事件响应。


8.AFIO复用IO口:


2734ebd1cfd04766bd381696d26e8419.png


右图为选择控制器:左侧为多个输入端,通过上或下的控制端,选择左侧多个输入端中的一个给右侧的输出端。


9.EXTI框图:


a71bc55c7bed4f1ca20969fbe77ee88a.png


注:框1为与门,框2为或门,均允许多个输入,但是只能有一个输出。或门:输入只要有一个为高电平1,输出即为高电平1。输入全为0,输出才为0.。。与门:输入全部都为高电平1,输出才为高电平1,否则为低电平0。


10.旋转编码器简介:


b2119b443a6f4cbda27978a5ac8b8fae.png


如第一个图,圆盘状的为光栅编码盘。光栅编码盘转动时,红外传感器的红外光出现遮挡透过遮挡透过等现象,对应高电平,低电平交替现象的方波,方波个数代表转过的角度,方波的频率代表转速。但是无法测旋转方向。


第二个图,可以测旋转方向,因为相位图(正交波形)中,正转是滞后90°,反转是提前90°.


第三个为电机连接霍尔传感器,当磁铁旋转时,通过霍尔传感器,输出正交的方波信号。


11.旋转编码器硬件电路:


e0afeae0070e4a4caeff48d44b76ed3b.png


解释:左图中A进入信号之后,默认VCC,为高电平1。若按键旋转,则A与GND直接导通,为低电平0.R3为输出限流电阻,防止模块引脚电流过大。C1是输出滤波电容,防止输出信号抖动。


左图B原理同A,不再赘述。


注:推荐各位查找NVIC和STM32手册加深理解。手册已上传,需要的可以在我的git中查找


STM32手册的第9章,中断和事件。


相关文章
|
7月前
|
物联网 开发者 智能硬件
STM32:引领嵌入式系统新时代的微控制器
STM32:引领嵌入式系统新时代的微控制器
|
7月前
STM32F103标准外设库——SysTick系统定时器(八)
STM32F103标准外设库——SysTick系统定时器(八)
579 0
STM32F103标准外设库——SysTick系统定时器(八)
|
2月前
|
传感器 监控 物联网
基于STM32+微波雷达设计的非接触式睡眠监控系统
本项目开发一种非接触式的睡眠监控系统,该系统利用先进的60GHz毫米波雷达技术和STM32微控制器,实现了对人体在睡眠过程中的存在感知、运动感知以及生理指标如呼吸频率、心率的实时监测。系统能够自动评估睡眠质量,并在用户睡眠周期结束时提供睡眠评分。为了确保用户能够在任何地点了解自己的睡眠状况,系统集成了Wi-Fi模块,可以将收集到的数据上传至华为云物联网平台,并通过专门设计的移动应用程序供用户远程访问。此外,系统还具备超阈值报警功能,当检测到异常的生理指标时会发出警报提醒。本地1.44寸TFT LCD显示屏用于实时显示监测到的信息,包括生理指标和环境数据。为了全面监测用户的健康状况,系统还加入了
319 0
基于STM32+微波雷达设计的非接触式睡眠监控系统
|
2月前
|
存储 机器学习/深度学习 编解码
基于STM32的车牌识别系统
基于STM32的车牌识别系统
126 0
|
2月前
|
传感器 网络协议 物联网
基于STM32的环境监测系统 (esp8267)(下)
基于STM32的环境监测系统 (esp8267)(下)
153 0
|
2月前
|
传感器 测试技术 芯片
基于STM32的环境监测系统 (esp8266)(上)
基于STM32的环境监测系统 (esp8266)(上)
489 0
|
3月前
|
存储 传感器 Linux
STM32微控制器为何不适合运行Linux系统的分析
总的来说,虽然技术上可能存在某些特殊情况下将Linux移植到高端STM32微控制器上的可能性,但从资源、性能、成本和应用场景等多个方面考虑,STM32微控制器不适合运行Linux系统。对于需要运行Linux的应用,更适合选择ARM Cortex-A系列处理器的开发平台。
295 0
|
7月前
|
内存技术 存储 Android开发
MCU最小系统电路设计(以STM32F103C8T6为例)-3
MCU最小系统电路设计(以STM32F103C8T6为例)
MCU最小系统电路设计(以STM32F103C8T6为例)-3
|
7月前
|
芯片
MCU最小系统电路设计(以STM32F103C8T6为例)-1
MCU最小系统电路设计(以STM32F103C8T6为例)
MCU最小系统电路设计(以STM32F103C8T6为例)-1
|
5月前
stm32f407探索者开发板(十五)——NVIC中断优先级管理
stm32f407探索者开发板(十五)——NVIC中断优先级管理
261 0