CH573 BLE低功耗唤醒问题

我在使用CH573的时候遇到一个比较奇怪的现象:

1、休眠后广播会停止,芯片被唤醒时才会重新广播。

2、peripheral如果处于已连接状态,休眠后,从空口数据来看,master一直在发数据,slave没有响应了,导致timeout断开,但ch573收不到断开的回调,直到被唤醒时才收到。

以下是我的代码,基本参考的是demo程序,使用的是LSE,CLK_OSC32K为0,HAL_SLEEP为1,DEBUG为1。有大佬遇到过吗,希望能给些建议,万分感谢!

image.png

将HAL_SLEEP设置为1,那么就打开了睡眠,但这个睡眠不是说一直睡眠,由我们协议栈去控制,空闲时就会睡眠,从而降低平均功耗,睡眠时是不广播的。可参考链接:

https://www.cnblogs.com/debugdabiaoge/p/15886638.html


感谢答复!但我这边实际的现象是休眠之后再也不广播了(sniffer抓不到广播包了),直到通过GPIO唤醒后才会重新广播,有没有可能是LSE没有起振导致?


32K是一直都振的,32M会在休眠的时候停止。
广播是定时任务,通过RTC唤醒芯片的,你可以监控下,睡眠开启后有没有定时醒(比如在)
image.png

这个里面加个简单的打印看看


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