ICIL培训 | STMCuBe配置 按键点灯 外部中断 debug
ICIL培训 | STMCuBe配置 按键点灯 外部中断 debug
Zehua点灯
配置cubemx
配置时钟
配置GPIO口
将PC13选择为输出模式,在左侧配置默认电平,GPIO模式,用户标签
配置工程
Toolchain/IDE选择要用的软件,在code generator中勾选Generate peripheral initialization as a pair of.c/.h’ files per peripheral(初始化代码生成在对应的外设文件。 如UART初始化代码生成在uart.c中)
点亮led灯
LED_GPIO_Port代表目标引脚的端口号,例如GPIOB。
LED_Pin代表目标引脚的引脚号,例如GPIO_Pin_5。
GPIO_PIN_RESET代表当前引脚的高低电平,高电平(GPIO_PIN_SET)、低电平(GPIO_PIN_RESET)。
HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET); |
翻转引脚电平
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin); |
配置按键
将PA7设置为输入模式,并且设置为上拉
读取引脚电平,并点亮LED灯
if(HAL_GPIO_ReadPin(GPIOA,button_Pin0)==0) |
中断
滴答计时器中断
SysTick_Handler()
1ms触发一次
外部中断
配置cubemx
将PA7设置为GPIO_EXTI,并且在NVIC中启用中断
按键消抖
void SysTick_Handler(void) |
外部中断的回调函数
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
当外部中断发生时,系统会通过传递参数的方式将触发中断的引脚信息传递给回调函数。在 HAL_GPIO_EXTI_Callback() 函数中,GPIO_Pin 是一个参数,表示触发中断的引脚。
HAL_GPIO_EXTI_Callback(){ |
Debug
在Keil uVision5中,如图标黄的地方即可进行debug
参考:Keil(MDK-ARM-STM32)系列教程(八)在线调试(Ⅰ)