NUCLEO-G071RB:004——GPIO-按键EXTI外部中断控制LED闪烁
- 设计目标
- 电路原理图
- 芯片配置
- 程序修改
设计目标
电路原理图
与NUCLEO-G071RB:003——GPIO-按键控制LED灯相同
芯片配置
1、PC13(B1):EXTI外部中断模式,其他默认
2、中断配置:使能EXTI4-15外部中断
程序修改
1、新增定义EXTI13(B1)中断服务子函数
void EXTI4_15_Callback(uint16_t gpio_pin)
{
if (gpio_pin == B1_Pin)
{
HAL_GPIO_TogglePin(LD4_GPIO_Port, LD4_Pin);
}
}
2、在库EXTI中断服务子函数__weak void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin),增加上述函数的声明与调用
/**
* @brief EXTI line detection callback.
* @param GPIO_Pin Specifies the port pin connected to corresponding EXTI line.
* @retval None
*/
__weak void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
void EXTI4_15_Callback(uint16_t gpio_pin);
/* Prevent unused argument(s) compilation warning */
// UNUSED(GPIO_Pin);
EXTI4_15_Callback(GPIO_Pin);
/* NOTE: This function should not be modified, when the callback is needed,
the HAL_GPIO_EXTI_Falling_Callback could be implemented in the user file
*/
}
编译、下载、运行,发现LED4跟随按键按下动作而发生亮/灭切换