这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 【Let'sdoDigiKey2026第3期】+基于STM32H533RE的开发

共1条 1/1 1 跳转至页

【Let'sdoDigiKey2026第3期】+基于STM32H533RE的开发环境搭建、LED控制与串口printf实战

菜鸟
2026-10-27 14:32:18     打赏

一、项目背景

我参加了 DigiKey 与 EEPW 联合举办的 2026 年第 3 期活动。本期活动主题为“基于边缘 AI 的电机状态检测”。在开展后续功能开发前,我先完成 ST 开发板的开发环境搭建,并验证板载 LED、蜂鸣器和串口通信。

本帖记录的是基础环境与外设功能的实现过程,后续会在此基础上继续开展项目功能验证。

活动页面:Let's do 2026 年第 3 期活动介绍

f4a846081445f9fec98a68074243d843.jpg

二、硬件与软件环境

硬件

  • 主控板:NUCLEO-C562RE

  • 调试与下载:开发板板载 ST-LINK

软件

  • STM32CubeMX2:配置芯片、时钟及外设

  • VScode+STM32CubeIDE组件:编译、下载和调试

  • 串口调试助手:查看串口输出

三、系统设计与连接说明

1. 用户按键和 LED

两者都在 NUCLEO-C562RE 板上,不需要外部接线。

功能MCU 引脚说明
用户按键 B1PC13按下为高电平,默认外部下拉
用户 LED LD1PA5高电平点亮

注意:

  • PC13 只能配置为输入,不能配置为输出。

  • 不能把 PC13 驱动为低电平,否则按下按键时可能短路。

  • PC13 外部已有下拉电阻,CubeMX 中选择 No Pull 即可。

2. 蜂鸣器

Grove BuzzerNUCLEO-C562RE
GND / Pin 1CN6 pin 6 或 7 / GND
VCC / Pin 2CN6 pin 4 / 3V3
NC / Pin 3不接
SIG / Pin 4CN5 pin 2 / D9 / PC6

四、开发环境搭建与外设配置

CubeMX 配置

新建工程时选择:

  •  MCU:STM32C562RETx

  • Toolchain:STM32CubeIDE

GPIO 配置

引脚模式Pull初始状态标签建议
PC13GPIO_InputNo Pull—B1_USER
PA5GPIO_Output Push-PullNo PullLowLED_LD1
PC6GPIO_Output Push-PullNo PullLowBUZZER

五、基础控制代码

以下示例展示 LED 翻转、通过有源蜂鸣器发声,以及通过 UART 输出状态信息。代码假设 CubeMX 中已将 GPIO 用户标签设置为 LED、BUZZER,并启用了 USART2。

按键代码示例:

/* USER CODE BEGIN 0 */

static void Button_Scan(void)
{
    GPIO_PinState raw;
    uint32_t now;

    raw = HAL_GPIO_ReadPin(BTN_PORT, BTN_PIN);
    now = HAL_GetTick();

    /* 记录原始电平变化,重新开始消抖 */
    if (raw != button_last_raw)
    {
        button_last_raw = raw;
        button_last_change_tick = now;
    }

    /* 电平稳定超过 DEBOUNCE_MS 才认为有效 */
    if ((now - button_last_change_tick) >= DEBOUNCE_MS)
    {
        if (raw != button_stable)
        {
            button_stable = raw;

            /* B1 按下为高电平 */
            if (button_stable == GPIO_PIN_SET)
            {
                /* LED 翻转 */
                led_on = (led_on == 0U) ? 1U : 0U;

                HAL_GPIO_WritePin(
                    LED_PORT,
                    LED_PIN,
                    led_on ? GPIO_PIN_SET : GPIO_PIN_RESET
                );

                /* 蜂鸣器开始短鸣 */
                HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_SET);
                buzzer_active = 1U;
                buzzer_start_tick = now;
            }
        }
    }
}

/* USER CODE END 0 */

主循环

/* USER CODE BEGIN WHILE */

while (1)
{
    Button_Scan();

    /* 蜂鸣器短鸣结束 */
    if ((buzzer_active != 0U) &&
        ((HAL_GetTick() - buzzer_start_tick) >= BUZZER_MS))
    {
        HAL_GPIO_WritePin(BUZZER_PORT, BUZZER_PIN, GPIO_PIN_RESET);
        buzzer_active = 0U;
    }

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */

62bae3de749645ed73462456d4c90e59.png

六、编译、下载与功能验证

  • 使用 IDE 编译工程,确认没有编译错误。

  • 通过 ST-LINK 将程序下载到开发板。

  • 打开串口调试助手,选择与开发板实际连接的串口,并设置为 115200、8N1、无校验。

  • 复位开发板,观察 LED 是否按程序翻转、并确认串口助手能收到状态信息。

6b69b3fc62f45b9c221fcfa2f03e5a85.png

    七、小结

    本阶段完成了 STM32 开发工程的基础搭建,并围绕 LED、蜂鸣器和 UART 输出进行了基础控制设计。这些功能为后续增加传感器采集、数据处理和电机状态检测打下了基础。接下来将结合活动主题继续完善系统功能,并补充实际测试数据与运行效果。





共1条 1/1 1 跳转至页

回复

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