说明
本文将以STM32F103ZET6为例,配置外部中断为下降沿触发
配置部分
新建工程
- 搜索单片机型号(STM32F103ZET6)
- 选择单片机
- 创建工程
配置系统时钟
- 选择高速时钟(外部陶瓷晶体振荡器)
- 选择低速时钟(外部陶瓷晶体振荡器)
配置中断引脚(以PE4为例)
- 选择PE4引脚配置为GPIO_EXTI4外部中断模式
- 配置引脚功能
- 切换到GPIO选项面板
- 选择对应的GPIO引脚(PB15)
- 对框内属性进行配置
- GPIO模式:External Interrupt Mode with Rising edge trigger detection(上升沿触发)
- GPIO是否上下拉:Pull-up(上拉)
- 用户标签:
- 使能外部中断
配置时钟树
- 选择时钟设置界面
- 将HCLK配置到72MHz,系统自动配置各个时钟
项目文件设置
- 选择文件设置选项卡
- 设置项目名称
- 设置存储位置
- 选择所用IDE
- 选择为每个功能生成一个.c和.h文件
- 生成代码
代码部分
此时从文件stm32f1xx_it.c中发现有关中断的处理程序
从此函数中执行到 HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_4)函数,定义到该函数
从这里看出中断回调函数 HAL_GPIO_EXTI_Callback(GPIO_Pin)
由此可知我们需要从定义还函数。
实例
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){//中断回调函数
if(GPIO_Pin==GPIO_PIN_4){//判断中断是否由PE4产生
//中断发生后执行
HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);//翻转LED0
}
}