CH571 使用HAL_SLEEP模式,看门狗不能用?

如题,BLE使用SLEEP,不知道是程序跑飞了,还是没有唤醒,串口没有了输出,打开了看门狗复位 WWDG_ResetCfg(ENABLE); 根本就没用,低功耗模式不能使用看门狗吗?

进入睡眠模式,主频不工作,看门狗计数就停止了,唤醒后计数清0,在蓝牙程序中将HAL_SLEEP设置为TRUE之后,由协议栈传入唤醒时间,有任务的时候会唤醒工作,可以加个tmos任务执行打印或者翻IO试试。


HAL_SLEEP设置为TRUE之后,蓝牙反复断开连接几十次,就连不上了,像死机一样


您好,参考一下这篇博客:

CH573芯片Sleep说明(RTC程序说明) - SweetTea_lllpc - 博客园 (cnblogs.com)


我们这边使用官网例程,将HAL_SLEEP设置为TRUE,设置串口打印为串口0,使用571k demo板测试连接和通信是正常的,可以下载官网EVT测试下。


睡眠模式RTC的问题,我加上了GPIO唤醒,复现问题后,用GPIO唤醒后,能继续运行


这单片机也是没谁了,低功耗蓝牙低功耗模式下不能用看门狗


没有吧,开sleep也是可以用的,只是看门狗时钟来源于高频晶体,睡眠时高频晶体停了,不用担心会死机,唤醒了会自动喂狗,如果唤醒后程序卡住没喂狗,看门狗会生效的。


问题是有时候RTC不执行唤醒,醒不来,狗就没用


RTC不能唤醒的话,建议你检查下代码,用最新的库试试,不能唤醒是怎么判断的,可以在睡眠函数中打印下协议栈传入的睡眠时间,在唤醒后加个io翻转试试,我板子都跑好久了,一切正常。


你好,你是用GPIO唤醒的?@不落氏花爷


是的啊,一般情况下用协议栈的RTC唤醒,自己想唤醒就用GPIO唤醒。


@不落氏花爷想问下,将HAL_SLEEP设置为TRUE之后,我自己的用户任务需要在哪里暂停


 用户任务暂停自行停止就可以了,注意任务放在TMOS里面处理。


只有登录才能回复,可以选择微信账号登录