我在使用CH573的时候遇到一个比较奇怪的现象:
1、休眠后广播会停止,芯片被唤醒时才会重新广播。
2、peripheral如果处于已连接状态,休眠后,从空口数据来看,master一直在发数据,slave没有响应了,导致timeout断开,但ch573收不到断开的回调,直到被唤醒时才收到。
以下是我的代码,基本参考的是demo程序,使用的是LSE,CLK_OSC32K为0,HAL_SLEEP为1,DEBUG为1。有大佬遇到过吗,希望能给些建议,万分感谢!
我在使用CH573的时候遇到一个比较奇怪的现象:
1、休眠后广播会停止,芯片被唤醒时才会重新广播。
2、peripheral如果处于已连接状态,休眠后,从空口数据来看,master一直在发数据,slave没有响应了,导致timeout断开,但ch573收不到断开的回调,直到被唤醒时才收到。
以下是我的代码,基本参考的是demo程序,使用的是LSE,CLK_OSC32K为0,HAL_SLEEP为1,DEBUG为1。有大佬遇到过吗,希望能给些建议,万分感谢!
将HAL_SLEEP设置为1,那么就打开了睡眠,但这个睡眠不是说一直睡眠,由我们协议栈去控制,空闲时就会睡眠,从而降低平均功耗,睡眠时是不广播的。可参考链接:
感谢答复!但我这边实际的现象是休眠之后再也不广播了(sniffer抓不到广播包了),直到通过GPIO唤醒后才会重新广播,有没有可能是LSE没有起振导致?
32K是一直都振的,32M会在休眠的时候停止。
广播是定时任务,通过RTC唤醒芯片的,你可以监控下,睡眠开启后有没有定时醒(比如在)
这个里面加个简单的打印看看