完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
中断向量EXti9_5_IRQn包含了5种管脚的中断。如果我设置了GPIO6和GPIO7为外部中断。我使用HAL库,,那么中断来了,我怎么判断是哪个中断口来的呢?
因为使用了HAL库,不能使用EXTI_GetITStatus();这个函数来检查。请问有什么办法吗? |
|
相关推荐
1个回答
|
|
在STM32L152中,使用HAL库处理EXTI9_5_IRQn中断时,确实不能直接使用EXTI_GetITStatus()函数。但是,你可以通过以下步骤来判断是哪个中断口触发了中断:
1. 首先,确保你已经正确配置了GPIO6和GPIO7的外部中断。这包括设置GPIO模式、中断触发方式等。 2. 在EXTI9_5_IRQn中断处理函数中,使用HAL_EXTI_GetPending()函数来检查哪个中断触发了。这个函数是HAL库提供的,可以用来替代EXTI_GetITStatus()。 3. 根据HAL_EXTI_GetPending()的返回值,判断是哪个中断触发了。例如: ```c void EXTI9_5_IRQHandler(void) { if (__HAL_EXTI_GET_PENDING(EXTI_PIN_6) != RESET) { // GPIO6中断处理 __HAL_EXTI_CLEAR_FLAG(EXTI_PIN_6); } else if (__HAL_EXTI_GET_PENDING(EXTI_PIN_7) != RESET) { // GPIO7中断处理 __HAL_EXTI_CLEAR_FLAG(EXTI_PIN_7); } // 如果还有其他中断,可以继续添加判断 } ``` 4. 在处理完中断后,使用__HAL_EXTI_CLEAR_FLAG()函数清除中断标志,以防止重复触发。 通过以上步骤,你可以在HAL库中判断是哪个GPIO引脚触发了EXTI9_5_IRQn中断,并进行相应的处理。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1781 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1085 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1680 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
732浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
596浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
559浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 11:49 , Processed in 0.473883 second(s), Total 43, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号