STM32L051C8T6 HAL库 stop模式下的低功耗 RTC+外部中断唤醒 总结+源码

最近NB项目上使用的ST公司一款低功耗MCU,要求功耗越低越好。经过几天时间,终于把它搞定了。其实很简单的,有个快捷方式就是去官方参考例程来移植即可。

因为官方没有STM32L051C8T6这个例程,在此就去找型号接近的来做,结果发现STM32L053R8这个可以使用。废话有点多请见谅哈!

1、调试低功耗产品先去看低功耗相关说明和寄存器操作,这个是避免不的。(去百度搜索stm32L0中文参考手册.pdf)

打开文档找到第6章节中的第3小节。

STM32L051C8T6 HAL库 stop模式下的低功耗 RTC+外部中断唤醒 总结+源码_第1张图片

模式说明,为了减少篇幅,各位看官,直接阅读文档吧。

STM32L051C8T6 HAL库 stop模式下的低功耗 RTC+外部中断唤醒 总结+源码_第2张图片

在这,我就不一一列举低功耗的知识了。看完手册上解释后,去官网下载对应STM32L0系列的库(注:这个系列芯片只有HAL库,没有标准库)

如果安装了CubeMxIDE这个图形化工具,就不用去官方下载了,直接在这个工具的安装目录下找即可

比如:D:\ST\STM32CubeIDE_1.0.1\Repository\STM32Cube_FW_L0_V1.11.2\Projects\NUCLEO-L053R8\Examples

这是我安装的路径,要看你安装路径来找。

下面的列出官方实例目录

STM32L051C8T6 HAL库 stop模式下的低功耗 RTC+外部中断唤醒 总结+源码_第3张图片

STM32L051C8T6 HAL库 stop模式下的低功耗 RTC+外部中断唤醒 总结+源码_第4张图片

直接移植过来即可使用。 

调试低功耗首先把项目上使用的产品外围电路去掉,只剩最小系统,一个个的排查,一个个的修改IO配置,还需要根据硬件上的上拉、下拉电阻,来配置进入低功耗之前配置内部上下拉,这样确保不然会导致漏电,从而达到最佳效果。下面就是最小系统进入stop模式后的功耗(测试电压3.8V,这个是经过LDO再到mcu的功耗,LDO耗了大概1.2uA左右)。可以见得单纯单片机的话大概是在1.5uA,这个结果还能接受。

STM32L051C8T6 HAL库 stop模式下的低功耗 RTC+外部中断唤醒 总结+源码_第5张图片

 注意:进入低功耗模式下,烧录程序是烧录不了的问题,需要按照复位键,然后点击下载,接着松开按键即可,还有一种办法就是烧录器要连接下载口中的reset脚。只有这样才能正常烧录程序。

加上串口打印大概是在6uA左右。

注意:这里RTC需要修改时钟源,如果选择外部时钟(32.768KHZ),内部时钟(37KHZ)
RTC同步分频系数,必须先设置同步分频(Sprec),再设置异步分频(Asprec)
计算公式:Frtc=Fclks/((Sprec+1)*(Asprec+1)) 
外部时钟源:32.768
32k/(127+1)(255+1)=1HZ
内部时钟源:37
37k/(36+1)(999+1)=1HZ

看下图:

STM32L051C8T6 HAL库 stop模式下的低功耗 RTC+外部中断唤醒 总结+源码_第6张图片

 STM32L051C8T6 HAL库 stop模式下的低功耗 RTC+外部中断唤醒 总结+源码_第7张图片

 注意:代码需要生成的代码可能需要修改了。

代码链接

你可能感兴趣的:(stm32单片机开发)