【STM32H5 评测】介绍、环境搭建、工程测试
本文介绍了 NUCLEO-H5E5ZJ 开发板的相关信息,包括外观参数、资源特点、原理图等,并搭建 STM32CubeMX 开发环境,创建测试工程,通过 VS Code 编译、调试和运行程序。
介绍
NUCLEO‑H5E5ZJ 基于 Nucleo‑144 架构,搭载 250MHz Cortex‑M33 的 STM32H5E5ZJ MCU,4MB Flash、1.5MB SRAM,以太网、USB‑HS、图形加速,Arduino 和 Morpho 双扩展、M.2 Key A 接口,板载 ST‑LINK V3EC 调试器,方便实现项目开发和想法快速落地。
外观
Top view

Bottom view

资源参数
-
采用 LQFP144 封装的 STM32H5E5ZJT6 微控制器
-
3 个用户 LED
-
1 个用户按钮和 1 个复位按钮
-
32.768 kHz 晶振
-
板载连接器:
-
灵活的电源选项:ST-LINK USB VBUS、USB连接器或外部电源
-
提供全面的免费软件库和示例,可通过STM32Cube MCU软件包获取
-
支持多种集成开发环境 (IDE),包括IAR Embedded Workbench®、MDK-ARM,以及STM32CubeIDE
-
符合 IEEE-802.3-2002 标准的以太网
-
USB 设备、USB OTG
-
启动按钮
-
板载连接器:
- ARDUINO® Uno V3 连接器
- 具有 USB Type-C 接口的 USB
- 以太网 RJ45
- M.2 Key A 串行存储器连接器
-
板载 ST-LINK-V3EC 调试器/编程器,支持USB重新枚举功能:大容量存储器、虚拟COM端口和调试端口
详见:NUCLEO-H5E5ZJ | 产品 - 意法半导体 .
主控
板载主控为 STM32H5E5ZJT6,基于 Arm Cortex-M33 32 位 RISC 核心的 STM32H5 系列高性能微控制器。

- 工作频率最高可达250 MHz;Cortex-M33 核心采用单精度浮点单元(FPU),支持所有 Arm 单精度数据处理指令及所有数据类型。
- 设备内置高速存储器(最多4 Mbytes双银行闪存和1536 K字节 SRAM)、适用于100针及以上封装设备的灵活外部存储控制器(FMC)、两个OCTOSPI内存接口,以及连接三条APB总线和三条AHB总线的丰富增强型I/O和外设, 以及一个32位多AHB总线矩阵。
- 提供三个快速 12 位 ADC、两个 DAC、一个内部电压参考缓冲器、一个低功耗RTC、两个32位通用定时器、两个专用于电机控制的 16 位PWM定时器、八个 16 位通用定时器、两个16位基本定时器和六个16位低功耗定时器。
- 具备标准和高级通信接口,具体为:四个I2C、两个I3C、六个SPI、六个USART、六个UART和一个低功耗UART,两个SAI,一个数字相机接口(DCMI),最多两个SDMMC,三个FDCAN,一个带嵌入式PHY的USB OTG高速,一个USB全速,一个USB Type-C/USB电源传输控制器,一个可编程逻辑阵列PLAY。
- 支持一个多功能数字滤波器(MDF),配备六个专门用于连接外部σ-δ调制器的滤波器。另一种专门用于音频信号的低功耗数字滤波器是嵌入式(ADF),其中一个滤波器支持声音活动检测。
- 提供了丰富的图形功能:Chrom-ART2(DMA2D)用于平滑运动和透明效果,专用图形计时器(GFXTIM)用于智能管理图形事件以实现帧或行计数,MJPEG和LCD-TFT控制器(LTDC)。
系统框图

STM32H5 系列参数

详见:STM32H5E5ZJ | 产品 - 意法半导体 .
原理图
框架

MCU

外设

Power

ST-LINK

USB

引脚

环境搭建


- 安装 STM32CubeIDE for VS Code 插件;

工程测试
使用 STM32CubeMX 创建工程,导入 VS Code 编译调试工程,上传固件至开发板并运行。
工程创建
- 打开 STM32CubeMX 软件,从开发板新建工程;

- 输入
H5E5ZJ ,选择目标开发板,点击 Start Project 按钮;

- 弹窗选项均保持默认,without TrustZone,加载板载资源,包括LED、按钮、串口等,勾选 demo 加载示例;
工程配置
根据原理图可知,板载 LED 对应引脚 PA3、PF0、PE5 ,用户按键对应引脚 PC13,串口(TX, RX) 对应 PD8 和 PD9;

- 时钟树配置均保持默认;
- 进入 Project Manager 标签页,输入工程名称、保存路径;
- 编译 IDE 有多种选择,这里使用 CMake 方式,便于 VS Code 调试;

- 点击
Generate Code 按钮,此时会提示下载所需的 stm32cube_fw_h5 固件包,点击下载并自动解压安装;
- 点击弹窗的
Open Folder 按钮,进入工程文件夹,空白处右键,选择使用 VS Code 打开;
工程代码
VS Code 加载工程,打开 ./Core/Src/main.c 文件,添加如下代码(可使用 AI-Agent 辅助生成代码)
#include "main.h"
COM_InitTypeDef BspCOMInit;
__IO uint32_t BspButtonState = BUTTON_RELEASED;
void SystemClock_Config(void);
static void MPU_Config(void);
static void MX_GPIO_Init(void);
static void MX_ICACHE_Init(void);
/* USER CODE BEGIN 0 */
static uint8_t LED_State_Printable(Led_TypeDef led)
{
#if defined (USE_NUCLEO_H5E5ZJ)
uint8_t raw = (uint8_t)BSP_LED_GetState(led);
if (led == LED1)
{
return raw;
}
return raw ? 0U : 1U;
#else
return (uint8_t)BSP_LED_GetState(led);
#endif
}
/* USER CODE END 0 */
int main(void)
{
MPU_Config();
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_ICACHE_Init();
/* Initialize leds */
BSP_LED_Init(LED_GREEN);
BSP_LED_Init(LED_RED);
BSP_LED_Init(LED_BLUE);
/* Initialize USER push-button*/
BSP_PB_Init(BUTTON_USER, BUTTON_MODE_EXTI);
/* Initialize COM1 port (115200, 8 bits (7-bit data + 1 stop bit), no parity */
BspCOMInit.BaudRate = 115200;
BspCOMInit.WordLength = COM_WORDLENGTH_8B;
BspCOMInit.StopBits = COM_STOPBITS_1;
BspCOMInit.Parity = COM_PARITY_NONE;
BspCOMInit.HwFlowCtl = COM_HWCONTROL_NONE;
if (BSP_COM_Init(COM1, &BspCOMInit) != BSP_ERROR_NONE)
{
Error_Handler();
}
printf("Welcome to STM32 world !\n\r");
/* -- Sample board code to switch on leds ---- */
BSP_LED_On(LED_GREEN);
BSP_LED_On(LED_RED);
BSP_LED_On(LED_BLUE);
while (1)
{
/* -- Sample board code for User push-button in interrupt mode ---- */
if (BspButtonState == BUTTON_PRESSED)
{
/* Update button state */
BspButtonState = BUTTON_RELEASED;
/* -- Sample board code to toggle leds ---- */
BSP_LED_Toggle(LED_GREEN);
BSP_LED_Toggle(LED_RED);
BSP_LED_Toggle(LED_BLUE);
/* Print LED state after each change */
printf("LED state: G=%d R=%d B=%d\r\n",
(int)BSP_LED_GetState(LED_GREEN),
(int)BSP_LED_GetState(LED_RED),
(int)BSP_LED_GetState(LED_BLUE));
}
}
}
保存代码。
代码实现的功能包括
- 初始化 STM32 MCU 和时钟;
- 配置 GPIO、缓存和串口;
- 初始化板载 LED 和用户按键;
- 串口输出启动信息;
- 按钮按下后切换 LED 状态、同时串口打印 LED 亮灭信息。
编译上传
使用 VS Code 自带的调试工具,或点击下方工具栏快捷按钮,执行编译、调试和上传等操作;

- 点击 VS Code 左侧菜单栏的
调试运行 按钮,创建 launch.json 调试文件,调试器选择 STLINK,默认配置保存;
- 点击
开始调试 按钮,自动编译工程并进入调试状态,点击条状悬浮窗的运行按钮,开始运行程序;

若调试报错,可使用 STM32CubeProgrammer 升级 ST-LINK 固件;
- 打开 CubeProg 软件,选择 ST-LINK 模式;
- 刷新设备列表,识别到开发板,点击
固件升级 按钮;
- 以升级模式打开,对比新旧固件版本号,点击升级按钮。

效果演示
短按用户按键,蓝红绿 LED 亮灭状态切换;

串口打印初始化信息,LED 状态;

总结
本文介绍了 NUCLEO-H5E5ZJ 开发板的相关信息,包括外观参数、资源特点、原理图等,并搭建 STM32CubeMX 开发环境,创建测试工程,通过 VS Code 编译、调试和运行程序,为相关产品的快速开发和应用测试提供了参考。 |
强呀!