目前在使用STM32L152时,设置了RTC唤醒,每隔1分钟唤醒一次,周期采集数据并上传,一开始都是正常唤醒工作,但是在18个小时候,设备就无法唤醒,但是重新插拔电池后又可以正常工作18个小时。 STOP模式下可以连续运行不会有问题,在stanby模式下就是18个小时候无法唤醒 这个原因是什么?待机模式唤醒后要进行什么操作? 18个小时我算了一下大概是0xFFFF秒,也就是65535秒。不知道是那个参数导致了这个问题。 在此请教一下大家 |
单片机的AD通道是否具有内部放大功能?
STM32L152配段码屏
ASDFKSDLKFA;LK
使用 X-NUCLEO-SAFEA1运行历程All_Use_Cases所有返回都是48怎么解决?
STM32L151 低功耗运行模式,CPU是处于正常运行状态吗?
串口连续接收同时写入FLASH数据不全
STM32L151RET6 的官方功耗数据是基于内部晶振还是外部晶振
如何利用timer对一个频率变化范围比较广的中低频脉冲信号进行精确脉冲长度/周期/频率测定
多路ADC使用DMA模式有没有教程呀,芯片STM32L151
STM32L151使用什么牌子的SD卡最好
你不妨检查下设置alarm唤醒参数配置的那部分代码。
可以重点看看设置唤醒计算的部分。 可以快速测试一下。
如果能确定是1分钟唤醒一次,也可以考虑用
LL_RTC_WAKEUP_SetAutoReload
唤醒试试。这边贴一下我RTC设置的代码,还有就是我发现我用的是LSE时钟,这个时钟走时会有比较大的偏差(可能是电容匹配的问题),会不会是时间偏差导致无法唤醒??
我在STOP模式下就没有发现这个问题,可以连续运行24小时都不出错,但是在stanby模式下就会18个小时后无法唤醒,这个验证了3次,两台设备,都是这样
这个调试起来很麻烦,因为是65535,所以可以很精确知道第几次会无法唤醒
先确定是完全无法唤醒,还是唤醒后执行出问题卡死了,可以在唤醒后啥都没干的时候先输出个简单的标志性字符作为标记,
看看是不是可以人为增加秒计时,通过这个手段触发每秒唤醒一次,这样18分钟后就能看到现场,就能用调试器看这个寄存器情况
我觉得大概率是自己写的代码出问题,计数溢出什么的,应该不太可能cubemx的代码出问题(不过也要验证一下这一点),如果这个确认,可以17个小时时候输出一下完整内存出来,看看哪个变量开始要溢出了。
所以,1,搞一个机器,只是唤醒,唤醒后啥都不做(自己代码全部屏蔽),看看18小时后是不是还能正常唤醒
2,搞一个机器,代码修改人为触发rtc快走,现实一秒rtc以为是一分钟,这样18分钟后就要到出问题时间点,方便调试检查
其他的,,18分钟后仔细看寄存器和各变量吧,