[i=s] 本帖最后由 jobszheng 于 2025-9-3 12:52 编辑 [/i]
【STM32U385RG 测评】开箱与搭建环境
非常有幸获得本次STM32U385RG的评测机会,在未来四周的日子里,我将持续分享在评测STM32U385RG的各种任务。
打开快递,ST仍使用现在主流的纸盒包装,开发板比较小,所以纸盒也不大。

打开之后,内部是环保的纸质缓冲填充,虽然在中国组装,但执行了欧洲标准吧。没有配线,所以我们本次试用要自己再配一根USB Type-C数据线。

STM32U385RG是ST公司针对低功耗U系列新推出的一个系列。其介于高性能U595与小型化U0之间的一个系列。STM32U385RG的主频高达96MHz,对于大部分嵌入式项目应用来说,主频完全能够胜任。与U0系列的小型应用不同,U3系列的SRAM大小适中,更适合功能丰富或带有小型GUI的项目应用。
新产品、新功能,那么其入手是否会有门槛?是否保持了STM32一贯的开发风格与代码编写的连续性?下面就随我一起搭建STM32U385RG的基础开发环境吧!
ST官方提供了图形化编程工具软件STM32CubeMX。我们将对时钟系统和底层外设的初始化均采用STM32CubeMX来生成。在生成之前,我们首先确定使用非Trust zone模式。省得对我们调试外设带来不必要的麻烦!

打开STM32CubeMX工程,选择STM32U385RG主芯片,开始创建工程,取消掉Trust Zone选项,先进入System Debug选项页,勾选调试接口SWD。

查看原理图,我们看到本次ST并没有给STM32U385RG设计外置时钟晶振,而是采用ST-Link V3提供时钟源输入时钟频率,不过,我们仔细观察开发板的原理图会发现,硬件设计上面并没有将此时钟源接入到STM32U385RG。再进一步学习STM32U385RG的时钟树,我们可以看到其内部并没有集成PLL模块,如果选择HSE外置时钟源,则意味着我们的STM32U385RG的工作主频将为8MHz。所以,我们在这里使用STM32U385RG内置的MSIS时钟源,并对于一分频,将STM32U385RG的工作主频设置为96MHz。因此STM32U385RG下对应的时钟选项需要做如下配置:

在配置好时钟之后,我们计划通过MCO引脚来验证一下。我们让其主频分频1/16,并使用示波器观察输出波形。编写MCO输出频率的源代码如下:
static void MX_GPIO_Init(void)
{
LL_GPIO_InitTypeDef GPIO_InitStruct = {0};
/* USER CODE BEGIN MX_GPIO_Init_1 */
/* USER CODE END MX_GPIO_Init_1 */
/* GPIO Ports Clock Enable */
LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_GPIOA);
/**/
GPIO_InitStruct.Pin = LL_GPIO_PIN_8;
GPIO_InitStruct.Mode = LL_GPIO_MODE_ALTERNATE;
GPIO_InitStruct.Speed = LL_GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.OutputType = LL_GPIO_OUTPUT_PUSHPULL;
GPIO_InitStruct.Pull = LL_GPIO_PULL_NO;
GPIO_InitStruct.Alternate = LL_GPIO_AF_0;
LL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USER CODE BEGIN MX_GPIO_Init_2 */
/* USER CODE END MX_GPIO_Init_2 */
}
static void MCO_init(void)
{
LL_SetSystemCoreClock(96000000);
LL_RCC_SetSourceClockMCO(LL_RCC_MCOSOURCE_SYSCLK);
LL_RCC_SetClockPrescalerMCO(LL_RCC_MCO_DIV_16);
}

通过示波器可观察到6MHz的波形,故系统主频我们配置正确为96MHz。
开发环境和系统,主时钟是我们应用的一个非常非常基础的前提,现在我们已经实现它了,那么在接下来的日子里面,我们将在此基础上扩展我们的应用,谢谢大家!
