前言:本节以STM32F407为例进行配置
目录
一、选择对应芯片
常规操作,这里我们选择F407ZGT6
二、配置sys
选择Serial Wire
三、配置RCC
选择高速外部时钟晶振,系统自动配置相应引脚。
四、配置外部中断引脚
通过查看开发板原理图,找出按键对应引脚
五、设置外部中断引脚
1、上升沿触发(外部中断触发引脚上的电平从低电平跳转到高电平)
2、下降沿触发(外部中断触发引脚上的电平从高电平跳转到低电平)
3、上下边沿均触发 (外部中断触发引脚上有电平变化)
六、开启外部中断
七、配置中断优先级
八、配置时钟
九、生成工程
HAL库GPIO函数库讲解
1、外部中断服务函数
void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin);
功能:用于清除中断标志位
实例:HAL_GPIO_EXIT_IRQHandler(GPIO_PIN_4);
2、中断回调函数
void HAL_GPIO_EXIT_Callback(uint16_t GPIO_PIN);
功能:可以理解为中断函数需要体现的动作。
实例: HAL_GPIO_EXIT_Callback(GPIO_PIN_4)
以上函数的定义可通过如下方式找到 (或stm32f1xx.it.c中查找),其它函数没怎么用到,不做介绍。
注:weak该回调函数的定义,可以理解为需要重构一个这样的函数。
void HAL_GPIO_EXIT_Callback(uint16_t GPIO_PIN)
{
if(GPIO_PIN == GPIO_PIN_2)
{
HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_9);
}
if(GPIO_PIN == GPIO_PIN_2)
{
HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_10);
}
}
注:在HAL库中,中断运行结束后不会立刻退出,而是会先进入相对应的中断回调函数,处理该函数中的代码之后,才会退出中断,所以在HAL库中我们一般将中断需要处理代码放在中断回调函数中