
上一篇简单配置了一下RTC,调用了一下设计及获取时间日期的函数。RTC在低功耗场景下还有一个功能就是作为一个低功耗唤醒源头,今天我要尝试进入standby模式,然后用RTC定时唤醒 - b: q. O5 D7 g1 X: E& A, V 工程的话我就沿用上一篇RTC的那个工程了,只是需要把while1中调用的测试函数全部去除,让while1为空( }0 z+ G5 W& P( s* H; C 一.CUBE修改# o1 o5 k5 f# t3 Q 来到RTC这里,把WeakUp打开,选择Internal WakeUp: }: z/ q& j* } 4 ^: M& Y3 v4 {9 u/ J 下面的参数配置; |; V1 M2 x! z Wake Up Clock是唤醒用的时钟源,可以是RTC CLK的2/4/8/16分频、1Hz、1Hz with 1bit added to Weak Up Counter。我这边先选择8分频,这个可以根据实际情况选择7 ^) r/ G+ `3 U. R t7 ]" }" Q8 e- W; b 然后第二个Counter参数与定时时间的关系是( E6 c: |& o7 v1 x) |7 T8 Q8 O9 J 1.如果选择RTC CLK的分频:Counter = 定时时间(S)* (RTC时钟 / 分频系数)4 q F& N# o: J+ X- e# m3 N 2.如果选择1Hz,那Counter = 定时时间(S)(看名字应该是这么回事,但是我没有试过,不敢确定)8 f2 p) R! n$ t' \( A) R2 v/ W+ j 3.如果选择1Hz with 1bit added to Weak Up Counter,这个情况我还没搞明白,主要是不明白“1bit added to Weak Up Counter”是个什么意思 % G9 s/ c1 w$ g8 ^- S% }$ | 我选择的RTC CLK 8分频,定时时间为5S,所以counter = 5 * (32.768k / 8) = 20480; x$ y% d4 e7 b5 d" ]- X- q 第三个参数同第二个,是时间到了后的自动重装载值,为了保持定时唤醒,我就把这个参数和第二个参数一样 ![]() 然后把中断打开 ![]() 最后Project Manager中有一个选项是把所有没有用到的pin叫配置成analog,这个可以避免没有使用的引脚但是外部接了东西,导致的漏电,从而测量功耗偏高 F6 b. b! r" R![]() 最后生成工程(图略) 二.代码编写 这次的代码修改很简单,先对cubemx生成的RTC的初始化函数做一下修改,如下
![]() 8 o c+ p; O5 S8 V3 x 在while1前面加如下代码
0 |9 m$ Z. d. Q0 ?! T1 ^! l, G ![]() 简单解释一下,standby就是倒数第二深的睡眠模式了,从standby唤醒后芯片就会reboot,但是唤醒后我们可以知道本次代码运行是因为硬件复位还是唤醒。所以我在代码中对这个情况加了打印,待会儿我们可以看一下效果。 如果是从standby唤醒的,那就清除standby的标志位(这个如果不清除,等睡下去后会立刻唤醒) 然后不管是从什么状态下运行代码,我都让他打印一下RTC时间,主要是避免RTC时间被重置,最后进入standby 好了烧录,运行,LOG如下 ![]() 符合预期,首次通电打印normal run,之后每隔5s打印一次wkup from standby run,并且RTC时间也是正常的向后跑 7 r# S- B m& u. q7 ~0 `6 l5 M ] p 三.功耗测试 功耗测试还是用上次LPTIM时用的PPK2 JP4供电跳帽调到CHG,JP6-11都去掉(不过这个不去掉也行,我试了不去掉也不影响功耗,毕竟STLINK已经断电了) 1 J f' U4 g. |: C8 l 接线如下 ![]() 测量结果如下图 4 g, E! M2 U' u& K+ W![]() 690nA,我已经尝试了很多设置,但是不知道还有什么是没有配置对的(我现在还怀疑STLINK与MCU连接的串口,或者是睡眠时有些时钟没关?),和手册上的160nA还是差了好多,有没有懂行的大佬指导一下 , x. d6 {* Y' d2 \5 | 最后工程见附件
![]() |
STM32N6坛友评测出炉,来围观(第二波预约继续)
【STM32C0评测】GPIO测试:使用外部中断控制小灯点亮熄灭
【STM32C0测评】Nucleo-C092开发板功耗测试
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(软件IIC)
【STM32C0测评】Nucleo-C092开发板IIC通信测试(硬件软件IIC一网打尽)
【STM32C0测评】Nucleo-C092开发板USART串口测试
【STM32N6570-DK评测】2.最简点灯
【STM32C0测评】Nucleo-C092开发板使用PWM控制板载LED呼吸灯
【STM32C0测评】Nucleo-C092板卡外部中断控制板载LED灯