差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
stm32:exti [2024/12/22 22:32] – laythy | stm32:exti [2024/12/22 23:33] (当前版本) – laythy | ||
---|---|---|---|
行 15: | 行 15: | ||
{{ : | {{ : | ||
- | NVIC结构:\\ | + | **NVIC和AFIO:**\\ |
NVIC接收多个外设输入,只有一个输出给CPU(最高优先级中断)。 | NVIC接收多个外设输入,只有一个输出给CPU(最高优先级中断)。 | ||
+ | 看下图2,EXTI5到9和EXTI10到15接到同一个NVIC中断里,执行同一个中断函数(为了节省NVIC引脚)。 | ||
{{ : | {{ : | ||
+ | {{ : | ||
+ | AFIO除了用于中断引脚选择,还用于复用功能引脚重映射。 | ||
+ | {{ : | ||
- | NVIC优先级分组:\\ | + | **NVIC优先级分组:**\\ |
抢占优先级:如果现在正在中断中,立刻停止当前中断,执行此中断。(优先级高的抢占优先级低的,可做中断嵌套)(形象比喻:患者直接插队到诊室) | 抢占优先级:如果现在正在中断中,立刻停止当前中断,执行此中断。(优先级高的抢占优先级低的,可做中断嵌套)(形象比喻:患者直接插队到诊室) | ||
响应优先级:如果现在正在中断中,继续当前中断,在当前中断结束后立即执行此中断。(形象比喻:患者插队到队伍前面) | 响应优先级:如果现在正在中断中,继续当前中断,在当前中断结束后立即执行此中断。(形象比喻:患者插队到队伍前面) | ||
行 26: | 行 30: | ||
{{ : | {{ : | ||
- | EXTI(外部中断):\\ | + | **EXTI(外部中断):**\\ |
- | 下图“相同的pin不能同时触发中断”:即GPIO_Pin_x,x相同的引脚不能同时触发中断。如PA3,PB3,PC3……不能同时触发。而PA3,PA4,PB2……可以。 | + | |
外部中断还有一个功能:从低功耗的停止模式下唤醒stm32切换到正常模式。(下图“通道数”的后四个) | 外部中断还有一个功能:从低功耗的停止模式下唤醒stm32切换到正常模式。(下图“通道数”的后四个) | ||
+ | 下图“相同的pin不能同时触发中断”:即GPIO_Pin_x,x相同的引脚不能同时触发中断。如PA3,PB3,PC3不能同时触发。而PA3,PA4,PB2可以。 | ||
+ | 解释:看NVIC结构图2,GPIO先通过AFIO(中断优先级选择),再接到EXTI。PA3,PB3,PC3经过AFIO后,只有一个pin能进入EXTI的3脚输入。 | ||
{{ : | {{ : | ||
+ | EXTI结构图:(输入线一共20脚,16来自AFIO选择的GPIOpin+4特殊通道) | ||
+ | {{ : | ||
+ | Q:什么时候用外部中断? | ||
+ | A:当想要获取的信号是有外部驱动的很快的突发信号。(如旋转编码器输出、红外计次输出) | ||
+ | |||
+ | 旋转编码器: | ||
+ | {{ : | ||
+ | 这种常见的旋转编码器,中间的轴可以按下,由上侧引脚输出。支持识别正反转和速度。 | ||
+ | 识别正反转:这种旋转编码器有特制的轴下金属片阵列,产生90°的相位差(相位差90°的波形也叫正交波形)。正转时,A比B先90°输出。反转时,B比A先90°输出。 | ||
+ | {{ : | ||
+ | {{ : |