电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【let'sdo|2026年第3期】过程贴:CubeMX2+CubeIDE2按键

共1条 1/1 1 跳转至页

【let'sdo|2026年第3期】过程贴:CubeMX2+CubeIDE2按键中断点灯(迎接变化)

助工
2026-11-13 20:05:40     打赏

本篇目的很简单:

USER按键(PC13)按下LED1(PA5)变换状态——使用中断方式。

本篇参考了ST官方应用笔记,并做了程序精简。

如何在STM32CubeMX2中使用EXTI

https://mp.weixin.qq.com/s/JzAHQwVGbsdHxI0vw3cB9w?scene=1

首先是CubeMX2的配置:


PA5设置为:输出

image.png


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

image.png


生成项目并导入到CubeIDE2中。


打开工程/generated/hal/mx_gpio_default.c

查阅PC13已配置好中断,并默认开启并初始化中断。

image.png


回到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;
}
}


运行效果如下:

微信视频2026-11-13_200121_778.gif






共1条 1/1 1 跳转至页

回复

匿名不能发帖!请先 [ 登陆 注册 ]