ex9 EXTI外部中断实验
实验目的:掌握EXTI的使用方法。
实验内容:按下USER按键触发外部中断EXTI14。
实验现象:每按下一次USER按键,LD5灯显示反转一次。
处理器根据不同中断的重要程序设置不同的优先等级。不同优先级中断的处理原则是:高级中断可以打断低级中断;低级中断不能打断高级中断。
新建工程
选择MCU 输入STM32L071KB
PC15引脚:GPIO_Output(输出模式)
PC14引脚:GPIO_EXTI14(中断模式)
PC15引脚配置
GPIO输出电平:高
GPIO模式:推挽输出
GPIO上拉电阻/下拉电阻:不上拉电阻/下拉电阻
输出速度:低
PC14引脚配置
GPIO模式:中断模式,下降沿触发(按键按下时,由高电平变为低电平,下降沿)
GPIO上拉电阻/下拉电阻:不上拉电阻/下拉电阻
时钟源:旁路时钟源
时钟频率:32MHz
在USER CODE BEGIN 4和USER CODE END 4之间添加中断回调函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_15);
}
当USER按键按下后,触发外部中断,进入中断服务函数,中断服务函数调用该Callback函数。函数中将LD5的状态反转。
3.HAL库函数解析外部中断通用处理函数 : void HAL GPIO_ EXTI IRQHandler(uint16_ t GPIO Pin)
功能描述 | 作为所有外部中断发生后的通用处理函数,所有外部中断服务程序均调用该函数完成中断处理,函数内部调用外部中断回调函数HAL GPIO EXTI Callback完成实际的 |
入口参数 | GPIO Pin:连接到对应外部中断线的引脚,范围是GPIO PIN 0 ~ GPIO PIN 15 |
外部中断回调函数 : void HAL GPIO_ EXTI Callback(uint16_ t GPIO_ Pin)
功能描述 | 外部中断回调函数,用于处理具体的中断任务,该函数由外部中断通用处理函数HAL GPIO EXTI IRQHandler调用,完成所有外部中断的任务处理 |
入口参数 | GPIO Pin:连接到对应外部中断线的引脚,范围是GPIO_PIN_0 ~ GPIO_PIN_15 |
GPIO输入读取函数 : HAL_GPIO_ReadPin(GPIOx, GPIO_Pin)
入口参数 | 描述 |
---|---|
GPIOx | GPIO端口,GPIOA~GPIOC |
GPIO_Pin | 连接到对应外部中断线的引脚,范围是GPIO_PIN_0 ~ GPIO_PIN_15 |