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

STM32U5进入standby模式时,待机电流有时候大的离谱,有时候却正常

[复制链接]
祺祺祺祺祺有此理 提问时间:2026-1-15 18:03 / 未解决

使用下面的代码进入standby模式后,休眠电流比预期大二十倍!

void prepareToStandby(void)
{


    // 停止 UART + DMA
    HAL_UART_DMAStop(&huart1);
    HAL_UART_DeInit(&huart1);

    HAL_UART_DMAStop(&huart4);
    HAL_UART_DeInit(&huart4);

    HAL_NVIC_DisableIRQ(UART4_IRQn);
    HAL_NVIC_DisableIRQ(USART1_IRQn);
    HAL_NVIC_ClearPendingIRQ(UART4_IRQn);
    HAL_NVIC_ClearPendingIRQ(USART1_IRQn);
    HAL_NVIC_ClearPendingIRQ(RTC_IRQn);

}
//休眠时间:秒
void enterLowPowerMode(const uint32_t sleep_s){
    if (sleep_s > 64800)
        return;

    /* RTC is already running, msp init will execute the minimum operation */
    /* Enable RTC APB clock  */
    __HAL_RCC_RTCAPB_CLK_ENABLE();
    __HAL_RCC_PWR_CLK_ENABLE();
    /* Clear Standby flag */
    prepareToStandby();     //静默外设!!必须

    __HAL_PWR_CLEAR_FLAG(PWR_FLAG_SBF);
    __HAL_PWR_CLEAR_FLAG(PWR_WAKEUP_ALL_FLAG);

    // 休眠时长1s-18h
    if (HAL_RTCEx_SetWakeUpTimer_IT(&hrtc, sleep_s, RTC_WAKEUPCLOCK_CK_SPRE_16BITS, 0) != HAL_OK) {
        Error_Handler();
    }
    HAL_PWREx_EnableUltraLowPowerMode();
    HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN7_HIGH_3);
    if (HAL_RTCEx_SetLowPowerCalib(&hrtc, RTC_LPCAL_SET) != HAL_OK)
    {
        Error_Handler();
    }

    HAL_SuspendTick();
    __DSB(); __ISB();
    HAL_PWR_EnterSTANDBYMode();
    // HAL_PWREx_EnterSHUTDOWNMode();
    // HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI);


}

电流截图如下:45uA!!,但是使用同样的代码,之前有时候却可以到2uA左右,请问这是什么原因呢?休眠被降级?为什么呢?(使用freertos)

image.png

image.png
image.png
收藏 评论6 发布时间:2026-1-15 18:03

举报

6个回答
CM_STM32 回答时间:2026-1-15 19:21:17

外设时钟没有被关闭?

butterflyspring 回答时间:2026-1-16 10:52:41
IO 有没有处理好。


看起来多出来耗电不多,很像是IO 没有设置好。

可以从这方面试试。
祺祺祺祺祺有此理 回答时间:2026-1-16 11:03:20

butterflyspring 发表于 2026-1-16 10:52
IO 有没有处理好。</p>
<p>

image.png

但是默认不配置的情况下,不是应该是浮空吗?

祺祺祺祺祺有此理 回答时间:2026-1-16 11:05:19

CM_STM32 发表于 2026-1-15 19:21
外设时钟没有被关闭?

大佬,能细说一下吗,正常不应该是内核控制吗,需要手动操作吗?

butterflyspring 回答时间:2026-1-16 14:57:51
祺祺祺祺祺有此理 发表于 2026-1-16 11:03
[md]![image.png](data/attachment/forum/202601/16/110301q7ucwdmzrqutrjw8.png?imageMogr2/auto-orient ...

从IO结构上看,浮空输入状态下有个施密特触发器。


可以改成模拟输入试试有没有效果。
祺祺祺祺祺有此理 回答时间:2026-1-19 10:19:32

butterflyspring 发表于 2026-1-16 14:57
从IO结构上看,浮空输入状态下有个施密特触发器。</p>
<p>

好嘟,我试试

所属标签

相似问题

官网相关资源

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