你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L151 stop模式 rtc 闹钟唤醒不稳定

[复制链接]
firstwangjin 提问时间:2018-5-22 20:47 /
阅读主题, 点击返回1楼
收藏 评论22 发布时间:2018-5-22 20:47
22个回答
firstwangjin 回答时间:2018-5-24 09:58:07
本帖最后由 firstwangjin 于 2018-5-24 10:20 编辑
安 发表于 2018-5-23 17:14
嗯。怀疑还是算法算错时间的问题,楼主可以加个打印,打印一下每次得到的唤醒时间,看一下每次不能唤醒的时 ...

你好,下面log是昨天追了一天后未唤醒的信息。
time now :20时50分36秒  ThreadSendSensorData Client has send sensor data Success!!!
Rset B :Next turn time 2018年05月23日20时55分05秒
time now :20时50分36秒  ThreadSendSensorData Reset AlarmB to make sure can Wake UP...

时刻是 20:50:36 alarmB 设定的唤醒时间是 20:55:05 ,但是最终程序并没有唤醒
可以加微信请教啊 15601756551
回答时间:2018-5-24 10:35:01
楼主,下面这几句话是不是可以只保留开启中断的就可以了?
if (HAL_RTC_SetAlarm(&hrtc, &sAlarm, RTC_FORMAT_BIN) != HAL_OK)
{
    _Error_Handler(__FILE__, __LINE__);
}

if(HAL_RTC_SetAlarm_IT(&hrtc,&sAlarm,RTC_FORMAT_BIN) != HAL_OK)
{
    /* Initialization Error */
    Error_Handler();
}

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

firstwangjin 回答时间:2018-5-24 11:26:09
安 发表于 2018-5-24 10:35
楼主,下面这几句话是不是可以只保留开启中断的就可以了?
if (HAL_RTC_SetAlarm(&hrtc, &sAlarm, RTC_FORM ...

是的目前的程序里只保留了HAL_RTC_SetAlarm_IT 这一个函数
回答时间:2018-5-24 14:00:34
这个问题,我感觉还是得冲RTCalarm设置以后,是否成功找了。
firstwangjin 回答时间:2018-5-28 09:14:57
目前还没有找到真正的问题,先用一个IWDG定期唤醒。测了几天,到是没有死机。但是耗电会增加
回答时间:2018-5-28 14:16:34
本帖最后由 安 于 2018-5-28 14:18 编辑

楼主是否可以改成RTCwakeup唤醒,根据上面的代码分析,用RTCwakeup更方便。
xmshao 回答时间:2018-5-28 17:35:20
你说的有时唤不醒是所有板都 这样吗? 另外,所谓不唤醒发生后,后续是否一直不再唤醒? 如果说只是偶尔不唤醒,真的需要好好检查下程序代码,数据运算和赋值过程中是否有问题。
比方下面这句会不会有问题?  
minuteBit++;
sAlarm.AlarmTime.Minutes = minuteBit*minuteInterval;

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

occupy 回答时间:2018-5-30 10:21:57
查看一下时间到了,有没有进RTC中断啊 ,

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

firstwangjin 回答时间:2018-5-31 10:39:58
xmshao 发表于 2018-5-28 17:35
你说的有时唤不醒是所有板都 这样吗? 另外,所谓不唤醒发生后,后续是否一直不再唤醒? 如果说只是偶尔不 ...

你好! 唤醒失败的板子,后续一直睡眠,除非用外部中断触发。 这种现象的板子,具有随机和普遍性。
我采用喂狗后,唤不醒就重启了。这是个问题啊
下面是昨天运行的一段日志:

time now :19时43分04秒  HAL_IWDG_Refresh !      //喂狗时刻
Rset B :Send data DelayTimeout Time:19时43分24秒 // 设置alarmB 用来唤醒喂狗,设置完成后立即进入stop模式


Client Mode VERSION 1.30..  //设备又一次重启,重启后立即喂狗 ,查看下面的时刻是 19时43分31秒,alarmB并没有醒来喂狗,导致超时
time now :19时43分31秒  HAL_IWDG_Refresh !
time now :19时43分31秒  ThreadClientOnlineRequest delaytime .... randDelay = 939 sum =21
Rset B :Send data DelayTimeout Time:19时43分52秒
firstwangjin 回答时间:2018-5-31 10:41:34
安 发表于 2018-5-28 14:16
楼主是否可以改成RTCwakeup唤醒,根据上面的代码分析,用RTCwakeup更方便。

我今天就来修改看看
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版