一、 前言
很荣幸能入围【你晒单 我买单,DigiKey带您畅享好物!】第六期活动,非常感谢DigiKey得捷电子和EEWorld电子工程世界的大力支持。本次采购的物料为ST的NUCLEO-U385RG-Q开发板,这也是我第一次使用Cortex-M33内核的STM32单片机,本次主要分享CUBEMX配置避坑和按键中断的使用。
二、 简介
STM32U385RGT6-Q 是一款基于 Cortex-M33 内核的高端超低功耗微控制器(MCU),隶属于 ST 发布的最新一代 STM32U3 系列。它不仅延续了U5系列的低功耗特性,还进一步针对工业和医疗应用优化了性能与功耗的平衡。
内核采用ARM® Cortex®-M33,带有 TrustZone® 安全技术、FPU(浮点运算单元)和 DSP(数字信号处理)指令。
-Q表示带有 SMPS(开关电源)降压器。芯片内部集成了一个高效的DC-DC转换器,可以显著降低运行功耗。
具有LP-BAM功能:允许外设(如 I2C、SPI、UART)在 CPU 睡眠时依然能够自主运行(直接访问内存)。
三、 CUBEMX配置
在STM32CUBEMX中我们可以在Board Selector中选择NUCLEO-U385RG-Q运行官方例程,也可以在MCU/MPU Selector中选择STM32U385RGT6-Q芯片进行配置,进入时软件会提示do you want to create a new project,此时一定要选择without TrustZone activated,表示不启用TrustZone功能,防止一些非特权行为不被允许。进入后我们按需配置外设,我这里配置了串口1 PA9 PA10,DEBUG PA13 PA14 ,BUTTON PC13,LED PA5。
根据NUCLEO-U385RG-Q的原理图中我们可以看到板子默认是不带HSE外置晶振的,我们需要配置时钟为内部高速MSIS时钟,按键为按下高电平,没有上下拉电阻,没有硬件消抖电路,由于本次我们选择按键中断触发而不是轮询触发,我们需要选择PC13引脚为GPIO-EXTI13,在GPIO配置中选择PULL-DOWN内部下拉,External Interrupt Mode with Rising edge trigger detection上升沿触发。并在NVIC中开启EXTI Line 13中断。
四、程序编写
程序中我们需要注意,原来在STM32F系列芯片HAL库中GPIO中断回调函数HAL_GPIO_EXTI_Callback在较新的MCU Package中被细分为了HAL_GPIO_EXTI_Rising_Callback和HAL_GPIO_EXTI_Falling_Callback,上升沿回调函数和下降沿回调函数。
程序实现:
typedef enum {
SPEED_SLOW = 0,
SPEED_MEDIUM,
SPEED_FAST
} BlinkSpeed;
volatile BlinkSpeed current_speed = SPEED_SLOW;
volatile uint8_t key_event = 0;
while (1)
{
if (key_event)
{
key_event = 0;
current_speed = (BlinkSpeed)((current_speed + 1) % 3);
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
uint32_t delay_ms;
switch(current_speed) {
case SPEED_SLOW: delay_ms = 1000; break;
case SPEED_MEDIUM: delay_ms = 500; break;
case SPEED_FAST: delay_ms = 200; break;
default: delay_ms = 500;
}
HAL_Delay(delay_ms);
}
void HAL_GPIO_EXTI_Rising_Callback(uint16_t GPIO_Pin)
{
if (GPIO_Pin == GPIO_PIN_13)
{
key_event = 1;
}
}
本程序通过定义三种不同闪烁速度的状态,使用current_speed来记录当前的闪烁模式,key_event作为按键标志位。中断触发时设为1,进入if函数后马上清零。确保程序正常执行。中断回调函数HAL_GPIO_EXTI_Rising_Callback中,只对标志位进行更改,不做更多动作。
结果展示:
五、总结
这次 NUCLEO-U385RG-Q的上手体验让我印象深刻,也是我首次接触到ST官方的开发板,板载STLINK V3最高24MHZ的下载速度也让我眼前一亮。STM32U385RGT6-Q作为一款高端超低功耗高安全性的微控制器,芯片的96MHz 主频配合 LP-BAM 这种“黑科技”自治外设,在超低功耗与高性能间取得了完美平衡。下一步计划使用I2C外设并点亮一块OLED屏幕。


