最近用STM32L053做项目,功能都做完了,现在调试功耗,有几个疑问请教一下大家 HAL_SuspendTick(); //挂起(暂停)系统时钟中断 // HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI); //执行该语句后功耗1.77ma __HAL_RCC_PWR_CLK_ENABLE();//电源管理使能,没用 HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI); //0.75ma WFI任意中断唤醒 WFE唤醒事件 HAL_ResumeTick(); // /* 恢复系统时钟中断 */ 执行这个进入STOP模式后,测试功耗还有749uA,这个肯定不对,感觉这里没有把系统时钟变小,请教一下低功耗如何处理?系统时钟不需要我们自己设置吗?执行HAL_PWR_EnterSTOPMode自动帮我们设置了?我找了一些例程都没发现设置系统时钟。。。哈哈 |
建议楼主检查一下引脚,尤其是外部引脚连接,看看有没有可能漏电的地方。 官方的例程是基于官方的样板,很多样板例如NUCLEO外部没什么电路,所以IO处理比较简单,所测试的功耗就是芯片手册上的功耗值。
外设时钟关闭,比如usart直接调用对应的Deinit函数就行了?
应该进了,执行之后功耗小了很多,然后按键也可以唤醒
是准备把外围都焊掉,然后再测试
串的一个小电阻测的压降,实际转换成电流,低功耗已经解决了