本篇目的很简单:
USER按键(PC13)按下LED1(PA5)变换状态——使用中断方式。
本篇参考了ST官方应用笔记,并做了程序精简。
如何在STM32CubeMX2中使用EXTIhttps://mp.weixin.qq.com/s/JzAHQwVGbsdHxI0vw3cB9w?scene=1
首先是CubeMX2的配置:
PA5设置为:输出

PC13设置为输入,并开启中断,选择上升沿触发。

生成项目并导入到CubeIDE2中。
打开工程/generated/hal/mx_gpio_default.c
查阅PC13已配置好中断,并默认开启并初始化中断。

回到main.c中
#include "main.h"
volatile uint8_t ExtiDetected = 0;
int main(void)
{
if (mx_system_init() != SYSTEM_OK)
{
return (-1);
}
else
{
while (1) {
if(ExtiDetected == 1)
{
HAL_GPIO_TogglePin(PA5_PORT, PA5_PIN);
ExtiDetected = 0;
}
}
}
} /* end main */
中断回调函数
void HAL_EXTI_TriggerCallback(hal_exti_handle_t *hexti, hal_exti_trigger_t trigger)
{
/* Prevent unused argument compilation warning */
STM32_UNUSED(trigger);
if (hexti == mx_gpio_default_exti13_gethandle())
{
ExtiDetected = 1;
}
}运行效果如下:

我要赚赏金
