[STM32U3] 【STM32U385RG 测评】01+开箱+编译环境+定时器6实现LED闪烁

[复制链接]
 楼主| 聪聪哥哥 发表于 2025-7-18 08:49 | 显示全部楼层 |阅读模式
本帖最后由 聪聪哥哥 于 2025-8-5 20:57 编辑

我这边经常使用keil对arm架构的单片机进行开发,本次活动我也是使用该开发软件。对于STM32u385RG的底层驱动部分,我使用STM32cube MX软件进行配置,也是非常方便的,而且熟练的掌握HAL库的操作,开发软件很方便。
一:keil5 mdk的下载网址如下:
https://www.keil.com/download/product/
我们可以根据自己的需求进行下载:
1.png
在弹出的兑换框内需要填写一些个人信息,这里不需要管,随便填写一下,提交就好了。
2.png
这里我们随便填写以下信息就可以,然后再弹出的界面,直接下载keil5的安装包就可以,现在目前最新的版本是5.42a,但是我电脑上面安装的程序版本是5.38a,也是不影响使用的,这里没有选择最高版本的原因是,高版本安装支持包的时候会有问题,而且编译器的太高了,对我之前的程序编译有问题,这里也没做升级。
3.png

二:STM32cube Mx软件的安装过程

STM32CubeMX作为一种图形化工具,可以用于配置任何STM32器件。这款简单易用的图形用户界面为Cortex-M内核生成初始化C代码,并为Cortex-A内核生成Linux器件树。

第一步包括选择与所需外设集匹配的意法半导体STM32微控制器、微处理器或开发平台,同时包括在特定开发平台上运行的示例。

对于微处理器,第二步允许配置GPIO和设置整个系统的时钟,并交互地将外设分配给Arm® Cortex®-M或Cortex®-A内核。特定实用工具(如DDR配置和微调)增强了STM32微处理器的易用性。对于Cortex®-M内核,配置包含了额外步骤,与微控制器的十分相似。

对于微控制器和微处理器Arm® Cortex®-M,第二步为通过引脚分配冲突处理器、时钟树设置助手、功耗计算器,以及用于配置外设(如GPIO或USART)和中间件栈(如USB或TCP/IP)的实用工具来配置各个必需的嵌入式软件。

借助增强型STM32Cube扩展包,可扩展默认软件和中间件栈。可直接通过STM32CubeMX中可用的专用包管理器,直接下载意法半导体或意法半导体合作伙伴提供的软件包,其他软件包可以从本地驱动器进行安装。

此外,STM32CubeMX中的独特实用程序STM32PackCreator可帮助开发人员构建自己的增强型STM32Cube扩展包。

最终,用户可以生成与所选配置匹配的软件包。这一步提供Arm® Cortex®-M初始化C代码(可随时用于多个开发环境),或面向Arm® Cortex®-A的部分Linux®设备树。

STM32CubeMX在STM32Cube中交付。

我们需要再STM32 的生态社区下载软件

4.png

三:STM32CubeProgrammer 软件的使用

STM32CubeProgrammer (STM32CubeProg) 是一款用于编程STM32产品的全功能多操作系统软件工具

它提供了一个易用高效的环境,通过调试接口(JTAG和SWD)和自举程序接口(UART、USB DFU、I2C、SPI和CAN)读取、写入及验证器件内存。

STM32CubeProgrammer的功能广泛,可以对STM32内部存储器(如Flash、RAM和OTP)以及外部存储器进行编程。

STM32CubeProgrammer还允许选择编程和上传、编程内容验证以及通过脚本自动编程。

STM32CubeProgrammer提供了GUI(图形用户界面)和CLI(命令行界面)版本。

5.png

我们可以升级一下,开发板板载的调试器,然后设置一下MCO输出的工作频率,为U385提供外部晶振的时钟来源。同时升级过后,也可以在ST-link虚拟的U盘中,直接打开开发板U385的资料,也是很方便的。四:初建项目工程;
任务:建立开发环境,(最好有版本管理控制)。成果展示:以视频或gif动图的方式展示您的LED闪烁结果;
4.1 打开 STM32cube MX 配置软件(不用的时候记得更新)
6.png
4.2 选择 STM32u385RG 芯片,直接选择带开发板的就可以
7.png
4.3 首先配置芯片的调试功能,然后配置时钟树就可以,
9.png
这里为了将芯片的工作频率配置成成96Mhz,所以配置的时钟来源为MSIS时钟,(第一次使用该时钟,目前还不太了解)。
4.4 配置定时器6为系统的时基基准
10.png
这里只需要配置好预分频系数和重装值就可以,然后使能定时器6的中断。为了方便查看效果,定时器中断时间为100MS一次。
4.5 查看板载LED灯使用的引脚
11.png
可以看到 使用PA5引脚,这里ST的开发基本上都是使用PA5引脚,作为LED的引脚。
直接生成代码功能就可以。
五:软件代码如下:
5.1 定时器的初始化:
  1. void MX_TIM6_Init(void)
  2. {
  3.   /* USER CODE BEGIN TIM6_Init 0 */
  4.   /* USER CODE END TIM6_Init 0 */
  5.   TIM_MasterConfigTypeDef sMasterConfig = {0};
  6.   /* USER CODE BEGIN TIM6_Init 1 */
  7.   /* USER CODE END TIM6_Init 1 */
  8.   htim6.Instance = TIM6;
  9.   htim6.Init.Prescaler = 9499;
  10.   htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
  11.   htim6.Init.Period = 999;
  12.   htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
  13.   if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
  14.   {
  15.     Error_Handler();
  16.   }
  17.   sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
  18.   sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
  19.   if (HAL_TIMEx_MasterConfigSynchronization(&htim6, &sMasterConfig) != HAL_OK)
  20.   {
  21.     Error_Handler();
  22.   }
  23.   /* USER CODE BEGIN TIM6_Init 2 */
  24.   HAL_TIM_Base_Start_IT(&htim6);
  25.   /* USER CODE END TIM6_Init 2 */
  26. }
在官方的初始化完成函数中,调用开启定时器6中断功能即可。
5.2 定时器回调函数编写
  1. void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
  2. {
  3.   /* USER CODE BEGIN Callback 0 */

  4.   /* USER CODE END Callback 0 */

  5.   /* USER CODE BEGIN Callback 1 */
  6.   if (htim->Instance == TIM6)
  7.   {
  8.       HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
  9.   }
  10. }

六:试验现象:
01 00_00_00-00_00_30.gif
七:工程测试代码:
01LED.zip (6.66 MB, 下载次数: 1)
至此,使用定时器6完成LED灯闪烁的功能完成。

LOVEEVER 发表于 2025-7-29 23:29 | 显示全部楼层
STM32IDE也是可以的
jackcat 发表于 2025-8-20 08:16 | 显示全部楼层
STM32U385RG 是一款基于 ARM Cortex-M33 内核的微控制器,适用于低功耗应用场景。
loutin 发表于 2025-8-20 16:29 | 显示全部楼层
TIM6 作为基础定时器,适合实现简单的周期性任务
dspmana 发表于 2025-8-20 16:47 | 显示全部楼层
STM32CubeIDE是ST官方提供的集成开发环境,支持STM32系列微控制器的开发。
olivem55arlowe 发表于 2025-8-20 17:03 | 显示全部楼层
时器6(TIM6)是 STM32U385RG 的基本定时器,可用于产生周期性中断。在代码中需使能 TIM6 时钟,并设置预分频值和自动重载值
uiint 发表于 2025-8-20 18:49 | 显示全部楼层
从 ST 官网下载并安装最新版本,用于生成初始化代码。
mattlincoln 发表于 2025-8-20 20:44 | 显示全部楼层
HAL_GPIO_TogglePin
uytyu 发表于 2025-8-21 15:59 | 显示全部楼层
STM32U385RG 是一款面向工业、医疗和消费电子领域的高性能微控制器,具有增强的安全机制和设备认证功能,能够有效延长电池寿命并保护数据
mikewalpole 发表于 2025-8-21 16:33 | 显示全部楼层
基础定时器,可用于定时触发中断,通过中断翻转 LED 引脚实现闪烁。
tabmone 发表于 2025-8-21 17:27 | 显示全部楼层
STM32U385RG 是一款高性能、低功耗的MCU,适合安全敏感型应用。
kmzuaz 发表于 2025-8-21 17:56 | 显示全部楼层
推荐使用 STM32CubeIDE
backlugin 发表于 2025-8-21 18:25 | 显示全部楼层
中断服务函数应尽量简短(避免阻塞主循环)。
hearstnorman323 发表于 2025-8-21 19:04 | 显示全部楼层
核心亮点是其出色的低功耗特性(支持多种低功耗模式)和增强的安全功能(内置硬件加密)。
hudi008 发表于 2025-8-21 19:42 | 显示全部楼层
STM32CubeIDE 免费              
updownq 发表于 2025-8-22 08:10 | 显示全部楼层
STM32U385RG 是 ST 推出的高性能低功耗 MCU,基于 ARM Cortex-M33 内核,主频高达 160MHz,集成丰富外设(ADC、DAC、USB、CAN 等),适合工业控制、物联网等场景。
pl202 发表于 2025-8-22 08:56 | 显示全部楼层
引脚标注清晰,方便连接外部设备。
hilahope 发表于 2025-8-22 09:39 | 显示全部楼层
STM32U385RG是一款高性能的微控制器
jonas222 发表于 2025-8-22 10:06 | 显示全部楼层
STM32U385RG基于Cortex-M33内核(支持ARMv8-M安全扩展),集成​​160MHz主频、512KB Flash、128KB RAM​​,并内置丰富外设
jimmhu 发表于 2025-8-22 10:36 | 显示全部楼层
STM32CubeIDE 提供了便捷的配置工具,可快速生成初始化代码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

85

主题

222

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部