STM32Hal库学习(三)CubeMx学习外部中断

外部中断主要是在CubeMx中设置好GPIO

在引脚界面配置成中断

STM32Hal库学习(三)CubeMx学习外部中断

然后configuration里对GPIO配置

STM32Hal库学习(三)CubeMx学习外部中断

对于低电平触发中断,需要把GPIO设置为上拉,然后下降沿触发,反之高电平触发,反过来

对NVIC配置

STM32Hal库学习(三)CubeMx学习外部中断

在生成的程序里

stm32f1xx_it.c里有EXTI0中断处理函数

STM32Hal库学习(三)CubeMx学习外部中断

此函数在stm32f1xx_hal_gpio.c里

STM32Hal库学习(三)CubeMx学习外部中断

中断标志位不为0,清零然后调用回调函数

STM32Hal库学习(三)CubeMx学习外部中断

__weak函数用于定义变量或者函数,常见于定义函数,在MDK ARM链接时优先链接定义为非weak的函数或变量,如果找不到则再链接weak函数

在main里自定义HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin),处理中断

STM32Hal库学习(三)CubeMx学习外部中断