你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32H5 评测】介绍、环境搭建、工程测试

[复制链接]
无垠的广袤 发布时间:2026-10-15 14:33

【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

top_view.jpg

Bottom view

bottom_view.jpg

资源参数

  • 采用 LQFP144 封装的 STM32H5E5ZJT6 微控制器

  • 3 个用户 LED

  • 1 个用户按钮和 1 个复位按钮

  • 32.768 kHz 晶振

  • 板载连接器:

    • SWD
    • ST morpho 扩展连接器
  • 灵活的电源选项: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 系列高性能微控制器。

mcu.jpg

  • 工作频率最高可达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)。

系统框图

stm32h5e5_source.jpg

STM32H5 系列参数

stm32h5_series.jpg

详见:STM32H5E5ZJ | 产品 - 意法半导体 .

原理图

框架

SCH_Diagram.jpg

MCU

SCH_MCU.jpg

外设

SCH_Peripherals.jpg

Power

SCH_Power.jpg

ST-LINK

SCH_STLINK.jpg

USB

SCH_USB.jpg

引脚

SCH_Pinout.jpg

环境搭建

stm32cubemx_logo.jpg

  • 下载并安装 VS Code 软件;

vscode_logo.jpg

  • 安装 STM32CubeIDE for VS Code 插件;

vscode_stm32expansion.jpg

工程测试

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

工程创建

  • 打开 STM32CubeMX 软件,从开发板新建工程;

mx_new_prj.jpg

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

mx_start_prj.jpg

  • 弹窗选项均保持默认,without TrustZone,加载板载资源,包括LED、按钮、串口等,勾选 demo 加载示例;

工程配置

根据原理图可知,板载 LED 对应引脚 PA3、PF0、PE5 ,用户按键对应引脚 PC13,串口(TX, RX) 对应 PD8 和 PD9;

stlink_uart.jpg

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

mx_generate_prj.jpg

  • 点击 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 自带的调试工具,或点击下方工具栏快捷按钮,执行编译、调试和上传等操作;

vscode_generate_fw.jpg

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

vscode_debug_run.jpg

若调试报错,可使用 STM32CubeProgrammer 升级 ST-LINK 固件;

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

stlink_upgrade.jpg

效果演示

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

blink_key.gif

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

demo_print_led.jpg

总结

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

赞 1 收藏 1 评论1 发布时间:2026-10-15 14:33

举报

1个回答
lugl 回答时间:3 天前

强呀!

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版