一、项目背景
我参加了 DigiKey 与 EEPW 联合举办的 2026 年第 3 期活动。本期活动主题为“基于边缘 AI 的电机状态检测”。在开展后续功能开发前,我先完成 ST 开发板的开发环境搭建,并验证板载 LED、蜂鸣器和串口通信。
本帖记录的是基础环境与外设功能的实现过程,后续会在此基础上继续开展项目功能验证。
二、硬件与软件环境
硬件
主控板:NUCLEO-H533RE
调试与下载:开发板板载 ST-LINK
软件
STM32CubeMX:配置芯片、时钟及外设
STM32CubeIDE 或 Keil MDK:编译、下载和调试
串口调试助手:查看串口输出
三、系统设计与连接说明
本阶段的控制关系如下:
电脑上的 CubeMX / IDE │ ├── ST-LINK 下载与调试 │ NUCLEO-H533RE ├── GPIO ── 板载 LED ├── GPIO 或 PWM ── 蜂鸣器模块 └── UART ── ST-LINK 虚拟串口或 USB 转串口 ── 串口助手
LED、和 UART 的具体引脚,需要根据所用开发板版本、原理图及实际接线确认。配置串口前也需要确认该串口是否连接到 ST-LINK 虚拟串口。
四、开发环境搭建与外设配置
1. 创建工程
在 STM32CubeMX 中选择对应的 STM32H533RE 芯片或 NUCLEO-H533RE 开发板,配置时钟后生成适用于 STM32CubeIDE 或 Keil MDK 的工程。
2. 配置串口
启用与电脑端串口连接相对应的 USART/UART 外设,配置常用参数:
波特率:115200
数据位:8
停止位:1
校验位:无
硬件流控:无
串口实例名称及引脚以实际 CubeMX 工程配置为准。下面的代码以 USART2、huart2 为例;如果工程使用其他 UART,需要相应替换。

五、基础控制代码
以下示例展示 LED 翻转、通过有源蜂鸣器发声,以及通过 UART 输出状态信息。代码假设 CubeMX 中已将 GPIO 用户标签设置为 LED、BUZZER,并启用了 USART2。
#include "main.h"#include <string.h>static void App_RunOnce(void){ const uint8_t message[] = "System ready: LED and buzzer test\r\n"; /* 通过串口输出状态信息 */ HAL_UART_Transmit(&huart2, (uint8_t *)message, sizeof(message) - 1U, HAL_MAX_DELAY); /* 翻转板载 LED */ HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); /* 有源蜂鸣器响一小段时间 */ HAL_GPIO_WritePin(BUZZER_GPIO_Port, BUZZER_Pin, GPIO_PIN_SET); HAL_Delay(200); HAL_GPIO_WritePin(BUZZER_GPIO_Port, BUZZER_Pin, GPIO_PIN_RESET); HAL_Delay(800);}在 main() 完成 HAL、时钟、GPIO 和 UART 初始化后,可在主循环中调用:
while (1){ App_RunOnce();}如果使用无源蜂鸣器,不能只依赖持续的 GPIO 高电平发声,需要启动对应的 PWM 通道,并按 CubeMX 生成的定时器实例和通道配置进行控制。
六、编译、下载与功能验证
使用 IDE 编译工程,确认没有编译错误。
通过 ST-LINK 将程序下载到开发板。
打开串口调试助手,选择与开发板实际连接的串口,并设置为 115200、8N1、无校验。
复位开发板,观察 LED 是否按程序翻转、并确认串口助手能收到状态信息。
预期串口输出示例:
hello
七、小结
本阶段完成了 STM32 开发工程的基础搭建,并围绕 LED、蜂鸣器和 UART 输出进行了基础控制设计。这些功能为后续增加传感器采集、数据处理和电机状态检测打下了基础。接下来将结合活动主题继续完善系统功能,并补充实际测试数据与运行效果。


我要赚赏金
