kmsp.net
当前位置:首页 >> stm32 Exti9 >>

stm32 Exti9

在中断事件中判断EXTI_PR寄存器可以知道具体是那个通道触发的。这样能将9_5分开。

io口5~9,就是ioABCD。。。的56789都用这个中断

这个是和官方库版本有关系的,以前用的是 EXTI9_5_IRQChannel,新版本用的是 EXTI9_5_IRQn

调用这个词不是很准确,假设你讲的是io对应的中断服务. stm32的每个io都可以对应一个exit中断服务,每个exit中断对应多个源,比如gpioA1B1C1都共用一个exit1.gpioA10~15,B10~15,C10~15共用exit15_10

外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置 输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以被独 立的屏蔽。挂起寄存器保持着状态线的中断要求。 ======...

编写 void EXTI9_5_IRQHandler (void) 和 void EXTI15_10_IRQHandler(void)对EXTI5-EXTI15中断处理,在函数里面通过查询挂起寄存器(EXTI->PR或FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line))来看是哪个中断发生。

; External Interrupts DCD WWDG_IRQHandler ; Window Watchdog DCD PVD_IRQHandler ; PVD through EXTI Line detect DCD TAMPER_IRQHandler ; Tamper DCD RTC_IRQHandler ; RTC DCD FLASH_IRQHandler ; Flash DCD RCC_IRQHandler ; RCC DCD EXT...

EXTI9_5_IRQHandler EXTI15_10_IRQHandler 你没仔细往下看吧?中断5~9共用一个入口,10~15共用一个入口。 究竟哪根线发生了中断,需要查询状态。

EXTI_GetITStatus(EXTI_Line13) != RESET 这句话是有必要加的,因为在库函数中10到15是共用的一个中断号,如果不加的话,端口10到15会进入同一个程序入口,执行相同的程序,加上后就可以利用if判断语句执行和GPIO_Pin_13特定的程序了。另,延时...

你说的外部中断吧,呵呵,每个GPIO口都可以外部中断,但是中断向量只有这么多: EXTI0_IRQn = 6, /*!< EXTI Line0 Interrupt */ EXTI1_IRQn = 7, /*!< EXTI Line1 Interrupt */ EXTI2_IRQn = 8, /*!< EXTI Line2 Interrupt */ EXTI3_IRQn = 9, /...

网站首页 | 网站地图
All rights reserved Powered by www.kmsp.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com