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

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

[复制链接]
无垠的广袤 发布时间:2026-5-23 16:31

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

本文介绍了 NUCLEO-U3C5ZI-Q 开发板的相关信息,包括外观、参数特点、资源分布、原理图等,并搭建 STM32Cube 开发环境,进行闪灯和串口打印等工程测试。

介绍

Nucleo-U3C5ZI-Q 开发板为用户提供了一种经济实惠且灵活的方法,用户可以通过选择STM32微控制器提供的多种性能与功耗特性组合,来尝试新概念并构建原型。对于兼容的开发板,内部或外部SMPS可显著降低运行模式下的功耗。

Nucleo-U3C5ZI-Q 开发板通过多个扩展连接器提供了多种专用屏蔽,助力用户轻松扩展 Nucleo 开放式开发平台的功能:Arduino® Uno V3连接器,可在某些电路板上作为 ST Zio 扩展连接器的组成部分进行扩展;ST morpho接头,提供对微控制器I/O引脚的访问。

集成 ST-LINK 调试器/编程器,无需额外探头。

包装

package.jpg

NUCLEO-U3C5ZI-Q 开发套件包括主板和说明书;

主板外面有防静电袋和瓦楞纸包裹,起到很好的防静电和减震作用,避免运输过程中的振动和摩擦影响;

package_open.jpg

防静电袋贴有醒目的标签;

board.jpg

开发板

Top view

top.jpg

Bottom view

bottom.jpg

参数特点

  • 通用特性
    • 采用 LQFP144 封装的 STM32 微控制器
    • 3个用户LED
    • 1个用户按钮和1个复位按钮
    • 32.768 kHz晶振
    • 板载连接器:
      • SWD
      • ST morpho扩展连接器
    • 灵活的电源选项:ST-LINK USB VBUS、USB连接器或外部电源;
    • 提供全面的免费软件库和示例,可通过STM32Cube MCU软件包获取;
    • 支持多种集成开发环境 (IDE),包括IAR Embedded Workbench®、MDK-ARM,以及STM32CubeIDE
  • 开发板功能
    • USB OTG
    • 用户按钮、复位按钮
    • 板载连接器:
      • ARDUINO® Uno V3连接器或包括ARDUINO® Uno V3的ST Zio扩展连接器
      • 具有 USB Type-C® 接口的 USB
      • M.2 Key A 串行存储器连接器
      • CAN FD 插头
    • 板载ST-LINK 调试器/编程器,支持USB重新枚举功能:大容量存储器、虚拟COM端口和调试端口;

主控

主控为 STM32U3C5ZIT6Q ;

超低功耗 Arm Cortex-M33 搭载 TrustZone MCU,96 MHz,2 MB 闪存,640 KB 内存,HSP,I3C,SMPS,加密存储器。

MCU.jpg

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

原理图

system_block.jpg

MCU

SCH_MCU.jpg

外设

SCH_peripherials.jpg

接口

SCH_pinout.jpg

ST-LINK

SCH_STLINK.jpg

上电

使用 Type-C 数据线连接开发板和电脑;

开发板运行出厂默认程序,蓝色 LED3 快速闪烁;

charge.gif

环境搭建

stm32cubeide_logo.jpg

硬件连接

使用 Type-C 数据线连接开发板和电脑;

hardware_connect.jpg

升级 STLINK

为了确保工程调试和运行的顺利进行,需要将板载 STLINK-V3 固件升级至最新版本。

  • 打开 STM32CubeProgrammer 软件,右侧切换为 ST-LINK 模式,自动识别板载调试器信息;
  • 点击固件升级按钮,在弹出的对话框中选择进入升级模式,升级 STLINK 固件;

cubeprog_read.jpg

工程测试

加载官方示例工程 GPIO 和 UART 以验证开发环境,包括工程创建、关键代码、编译运行等流程。

工程创建

  • 打开 STM32CubeMX 软件,选择从示例创建工程;

cubemx_start_example.jpg

  • 在左侧 Board 标签下搜索并选择 NUCLEO-U3C5ZI-Q 型号开发板;
  • 右下方找到 GPIO_IOToggle 工程,点击右侧下载按钮;
  • 待下载完成,点击右上角 Start Project 按钮,并选择工程路径和 IDE;

example_gpio_toggle_start.jpg

  • 这里使用 STM32CubeIDE 加载工程;

工程代码

展开左侧工程文件目录,双击打开 Application/User/main.c 文件,关键代码如下

#include "main.h"

/* USER CODE BEGIN PV */
static GPIO_InitTypeDef  GPIO_InitStruct;

/* USER CODE END PV */

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_ICACHE_Init(void);

int main(void)
{
  HAL_Init();

  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_ICACHE_Init();
  /* USER CODE BEGIN 2 */

   /* -1- Enable GPIO Clock (to be able to program the configuration registers) */
  LED1_GPIO_CLK_ENABLE();
  LED2_GPIO_CLK_ENABLE();

  /* -2- Configure IO in output push-pull mode to drive external LEDs */
  GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull  = GPIO_NOPULL;
  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

  GPIO_InitStruct.Pin = LED1_PIN;
  HAL_GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStruct);
  GPIO_InitStruct.Pin = LED2_PIN;
  HAL_GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStruct);

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
    HAL_GPIO_TogglePin(LED1_GPIO_PORT, LED1_PIN);
    /* Insert delay 100 ms */
    HAL_Delay(100);
    HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN);
    /* Insert delay 100 ms */
    HAL_Delay(100);

  }
  /* USER CODE END 3 */
}

保存代码。

编译上传

  • 右键工程文件夹,选择构建项目,或点击工具栏小锤子按钮;
  • 构建完成后,无报错产生,点击工具栏运行按钮,自动上传固件至开发板并运行;

toggle_download.jpg

效果演示

LED1 和 LED2 交替闪烁;

gpio_toggle.gif

串口

加载官方示例工程 UART 以验证开发环境,包括工程创建、关键代码、编译运行等流程。

工程创建

  • 打开 STM32CubeMX 软件,选择从示例创建工程;
  • 在左侧 Board 标签下搜索并选择 NUCLEO-U3C5ZI-Q 型号开发板;
  • 右下方找到 UART_Console 工程,点击右侧下载按钮;
  • 待下载完成,点击右上角 Start Project 按钮,并选择工程路径和 IDE;

uart_project_start.jpg

工程代码

展开左侧工程文件目录,双击打开 Application/User/main.c 文件,关键代码如下

#include "main.h"

UART_HandleTypeDef huart1;

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_ICACHE_Init(void);
static void MX_USART1_UART_Init(void);
/* USER CODE BEGIN PFP */
#if defined(__ICCARM__)
__ATTRIBUTES size_t __write(int, const unsigned char *, size_t);
#endif /* __ICCARM__ */

#if defined(__ICCARM__)
/* New definition from EWARM V9, compatible with EWARM8 */
int iar_fputc(int ch);
#define PUTCHAR_PROTOTYPE int iar_fputc(int ch)
#define GETCHAR_PROTOTYPE int fgetc(FILE *f)
#elif defined (__CC_ARM) || defined(__ARMCC_VERSION)
/* ARM Compiler 5/6 */
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#define GETCHAR_PROTOTYPE int fgetc(FILE *f)
#elif defined(__GNUC__)
int __io_putchar(int ch);
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
int __io_getchar(void);
#define GETCHAR_PROTOTYPE int __io_getchar(void)
#endif /* __ICCARM__ */

int main(void)
{
  HAL_Init();
  SystemClock_Config();
  BSP_LED_Init(LD2);

  MX_GPIO_Init();
  MX_ICACHE_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */

    /* Output a message on Hyperterminal using printf function */
  printf("\n\r UART Printf Example: retarget the C library printf function to the UART\n\r");
  printf("** This message is printed using printf() function. ** \n\r");

  /* User is prompted to enter characters on terminal input.
     Entered characters are echoed on terminal output until a CR character is entered */
  printf("\n\r UART Getchar Example: retarget UART input to the C library getchar function\n\r");
  printf("Enter a string then press ENTER \n\r");
  fflush (stdout);

  uint8_t receivedchar;
  receivedchar= ' ';
  while(receivedchar!= '\n' && receivedchar != '\r')
  {
#if defined (__ICCARM__) || defined (__ARMCC_VERSION)
    receivedchar = fgetc(stdin);
    printf("%c ",receivedchar);
#elif defined(__GNUC__)
    receivedchar = __io_getchar();
#endif /* __ICCARM__ || __ARMCC_VERSION */
  }

  /* End of example */
  printf("\n\rEnd of example\n\r");
  fflush (stdout);

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

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

保存代码。

效果演示

  • 运行串口调试助手软件,连接 STLINK-V3 对应的虚拟串口,配置波特率 115200 bps,打开串口;
  • 短按板载复位按键,串口输出 UART 初始化信息;
  • 发送字符串,开发板回复相同语句;

uart_print_test.jpg

总结

本文介绍了 NUCLEO-U3C5ZI-Q 开发板的相关信息,包括外观、参数特点、资源分布、原理图等,并搭建 STM32Cube 开发环境,进行闪灯和串口打印等工程测试,为相关产品的快速开发和功能测试提供了参考。

收藏 评论2 发布时间:2026-5-23 16:31

举报

2个回答
STM1024 回答时间:昨天 17:11

大佬动作挺快的嘛,我也是今天才收到的

STM1024 回答时间:昨天 18:20

大佬动作挺快的嘛,我也是今天才收到的

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版