一共有四个休眠唤醒程序,深睡模式有1和2之分。
1、PMU_Sleep例程:
1)烧录进PCB板要把其他定时器disable掉
2)休眠电流mA级别,不是很符合要求。
3)2000mAh的电池,如果是5mA的休眠电流,只能放16.67天,电就耗完了。
2、PMU_DeepSleep例程:
1)可以实现同一个按键PC13进行休眠唤醒
2) 按键中断唤醒的IRQn要进行更改
比如:PC13对应的 #define KEY_EXTI_IRQn IRQn_EXTI4_15
PA0对应的 #define KEY_EXTI_IRQn IRQn_EXTI0_1
3)可以实现其他IO口作为按键进行休眠唤醒(但是要设置上拉)
比如:设置PA0作为按键,PC13按键初始化是配置为了浮空,PA0要配置为上拉,然后找到开发板PA0和GND,用按键连接起来
4)测休眠唤醒电流需要,开发板,万用表(可以测电流mA,uA级别),电池或者直流源
a.开发板接电池,但不能直接接电池,要找硬件焊个座子
b.座子接电池,两根黑色接万用表测电流。
c.
5、还要改灯的IO口。
6、上电就开始闪烁灯,检测到按键按下,关灯,进入深睡,设置按键唤醒源(下降沿触发,要配置为上拉,按键接GND,上升沿触发,按键接VDD)
7、
3、PMU_PowerDown例程(掉电模式)
1)必须要上升沿触发
4、遇到的问题
1)为什么我的例程在开发板上可以跑,放在PCB板不行。
原因1:软件的IRQn没有配置好
原因2:软件的按键中断没有设置上拉,和下降沿触发
原因3:硬件原因
原因4:不知道下降沿触发接GND,上升沿触发接VDD
总结:以后要先反思自己,在找硬件原因。