一、项目背景
我参加了 DigiKey 与 EEPW 联合举办的 2026 年第 3 期活动。本期活动主题为“基于边缘 AI 的电机状态检测”。在开展后续功能开发前,我先完成 ST 开发板的开发环境搭建,并验证板载 LED、蜂鸣器和串口通信。
本帖记录的是基础环境与外设功能的实现过程,后续会在此基础上继续开展项目功能验证。
二、硬件与软件环境
硬件
主控板:NUCLEO-C562RE
调试与下载:开发板板载 ST-LINK
软件
STM32CubeMX2:配置芯片、时钟及外设
VScode+STM32CubeIDE组件:编译、下载和调试
串口调试助手:查看串口输出
三、系统设计与连接说明
1. 用户按键和 LED
两者都在 NUCLEO-C562RE 板上,不需要外部接线。
| 用户按键 B1 | PC13 | 按下为高电平,默认外部下拉 |
| 用户 LED LD1 | PA5 | 高电平点亮 |
注意:
PC13 只能配置为输入,不能配置为输出。
不能把 PC13 驱动为低电平,否则按下按键时可能短路。
PC13 外部已有下拉电阻,CubeMX 中选择 No Pull 即可。
2. 蜂鸣器
| GND / Pin 1 | CN6 pin 6 或 7 / GND |
| VCC / Pin 2 | CN6 pin 4 / 3V3 |
| NC / Pin 3 | 不接 |
| SIG / Pin 4 | CN5 pin 2 / D9 / PC6 |
四、开发环境搭建与外设配置
CubeMX 配置
新建工程时选择:
MCU:STM32C562RETx
Toolchain:STM32CubeIDE
GPIO 配置
| PC13 | GPIO_Input | No Pull | — | B1_USER |
| PA5 | GPIO_Output Push-Pull | No Pull | Low | LED_LD1 |
| PC6 | GPIO_Output Push-Pull | No Pull | Low | BUZZER |
五、基础控制代码
以下示例展示 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 */
六、编译、下载与功能验证
使用 IDE 编译工程,确认没有编译错误。
通过 ST-LINK 将程序下载到开发板。
打开串口调试助手,选择与开发板实际连接的串口,并设置为 115200、8N1、无校验。
复位开发板,观察 LED 是否按程序翻转、并确认串口助手能收到状态信息。

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

我要赚赏金
