别急,还没看完呢,它又调用了一个HAL_GPIO_EXTI_IRQHandler这个函数,难道就不好奇里面是什么?带着这份好奇,我们接着往里追。 紧接着就来到了这里,很明显在清楚标志位后又进入了一个 HAL_GPIO_EXTI_Callback(GPIO_Pin) 这个函数,这里就有一点需要注意了,它已经把本该是我们要去清除的标志位给清除了,也就是说,我们在使用STM32
所以,对于外部中断方式的按键输入检测,需要修改一下HAL_GPIO_EXTI_IRQHandler() 的代码,将清除中断挂起标志位的功能放在后面,即修改为如下的代码,这样修改后的程序运行就实现了设计想要达到的目的了。 /** * @brief Handle EXTI interrupt request. * @param GPIO_Pin Specifies the port pin connected to correspo...
(1)首先是中断服务函数 PD10外部中断触发之后程序计数器被写入0x000000E0(EXTI15_10_IRQHandler函数的地址) 然后程序开始执行EXTI15_10_IRQHandler函数: EXTI15_10_IRQHandler函数只是调用了另一个函数HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_10); 在这个函数中清楚中断标志位然后又调用了一个HAL_GPIO_EXTI_Callback(GP...
#define KEY_INT_EXTI_IRQ EXTI0_IRQn #define KEY_IRQHandler EXTI0_IRQHandler // 初始化函数 void EXTI_Key_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; /*开启按键GPIO口的时钟*/ KEY_INT_GPIO_CLK_ENABLE(); /* 选择按键的引脚 */ GPIO_InitStructure.Pin = KEY_INT_GPIO_PIN; /* 设置引...
HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin); void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin); void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin); main( )函数 我们可以在main.h中看到之前定义的用户标签,如下: ...
STM32的GPIO中断/外部中断EXTI还支持中断优先级的配置,可以设置不同的中断优先级以控制中断的处理顺序。STM32的GPIO中断/外部中断EXTI还支持中断嵌套,可以在处理一个中断时产生另一个中断。 HAL库gpio中断服务函数 void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) ...
HAL_GPIO_EXTI_IRQHandler函数会判断对应的标志位是否真的是1,如果是则清除改标志位,同时调用通用回调函数 HAL_GPIO_EXTI_Callback 并把相应的GPIO口作为参数传入(这里还是GPIO_PIN_0) HAL_GPIO_EXTI_Callback为弱定义函数,可以在main.c中重写,同时通过传入参数来判断到底是哪个外部中断线被触发了(也就是相应的if...
IO口外部中断HAL库配置方法 外部中断的中断线映射配置和触发方式都是在GPIO初始化函数中完成: 和串口中断一样,HAL库同样提供了外部中断通用处理函数HAL_GPIO_EXTI_IRQHandler,我们在外部中断服务函数中会 STM32—学习外部中断 每个IO口都可以作为外部中断,下图是中断映射关系,供IO口使用的中短线只有16个 配置IO 口...
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)的作用是获取中断标志位和清除中断标志位、调用中断服务回调函数;__weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)是弱函数,如果我们在其他的.c文件重新定义实现这个函数,则该位置函数无效。这2个函数我们无需理会,这里只是作个说明。
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); } voidHAL_GPIO_EXTI_Callback(uint16_tGPIO_Pin) { //处理GPIO中断 } ``` 05总结 通过本文的介绍,您应当对如何使用STM32HAL库进行GPIO控制有了初步的了解。合理配置并控制GPIO,可以实现对外部设备(如LED、按钮等)进行有效的控制和交互,为嵌入式系统的开发提供了基础...