STM32L4 HAL库中例程POR_STOP2_RTC中的一点疑问
最近项目需要使用低功耗处理器,我选择了STM32L4,原来并没有接触过STML系列的处理器,选择STM的原因是:原来用过STM32103系列的处理器,对处理器的外设相对熟悉一点。由于项目要求紧迫,就直接买了NUCLEO-L452RE的开发板试验,由于项目使用外设不多,想着直接在例程上做下试验,然后把程序组合一下就可以了。在使用低功耗功能的时候出了个问题,调试了好久。
在使用hal库中的例程PWR_STOP2_RTC时出现问题,
根据例程中的介绍应该是处理器在启动后初始化时钟至80M,然后使用LSI初始化实时时钟,启动实时时钟的wakeup功能。闪烁led五秒后,使系统进入STOP2状态。在wakeup时间(根据程序的意思应该是33s左右)到了后,唤醒处理器;闪烁led五秒,再次进入stop2,无线循环。
可是在下载后发现,处理器在LED第一次闪烁后进入休眠后,led不再闪烁了。
开始以为是在进入是stop2模式时设置除了问题,进入调试后对着寄存器查了半天,又和其他stop的例程对比了一下,没发现社么问题。后来以为是进入stop2后出现问题,由于在进入stop模式后不能再调试,只能凭空猜测问题在哪。
我推断是处理器没有成功进入stop2模式,可能出现了错误导致处理器一直在一个错误处理函数总跳不出来。可是在测试电流后发现程序已经成功进入休眠。