本帖最后由 聪聪哥哥 于 2025-8-6 20:09 编辑
之前研究了下,STM32U385的低功耗模式,今天继续和大家分享一下,使用按键重新从停止模式进入工作模式。 STM32U385RG的停止模式(Stop Mode)是其低功耗功能中的重要模式之一,能够在保持SRAM和寄存器数据的同时显著降低系统功耗。以下是关于STM32U385停止模式的详细解析:
一:停止模式的特点:
1.1 大部分时钟被关闭:在停止模式下,内核时钟(HCLK、PCLK)、PLL、HSI/HSE振荡器等均被关闭。
1.2 具有低功耗的优点:根据上一篇的测评,可以得知,只有几十个ua。
1.3 唤醒方式:外部中断(EXTI)、RTC闹钟、低功耗的定时器和串口都可以再次唤醒单片机。
二:停止模式的三种不同方式:
2.1 停止0:部分外设保持活动(如DAC、UART、SPI等),唤醒延迟最短,但功耗较高。
2.2 停止1:外设支持减少,功耗进一步降低,唤醒时需重新配置时钟。
2.3 停止2:仅保留极少数外设(如LPTIM、I2C3),功耗最低,但唤醒后需完全重新初始化系统时钟
三:软编写步骤:
3.1 配置电压调节器:选择低功耗模式(PWR_LOWPOWERMODE_STOPx)以进一步降低功耗。
3.2 关闭未使用外设:如ADC、DAC等需手动关闭(通过ADC_CR2和DAC_CR寄存器)。
3.3 设置唤醒源:例如配置EXTI引脚,也可以使用RTC唤醒。
3.4 调用HAL库函数:
四:STM32 cube MX软件配置:
五:软件编写如下:
- if(HAL_PWREx_ConfigSupply(PWR_SMPS_SUPPLY) != HAL_OK)
- {
- Error_Handler();
- }
- HAL_PWR_EnterSTOPMode(PWR_LOWPOWERMODE_STOP0, PWR_STOPENTRY_WFI);
- /* ... STOP 0 mode ... */
- /* Configure the system clock */
- SystemClock_Config();
- /* Resume Tick interrupt if disabled prior to STOP mode entry */
- HAL_ResumeTick();
六:实物测试gif图:
|