关于BLE STACK使用RC OSC问题
在使用 BLE-STACK 1.32的HIDAdvRemote这个demo进行调试时,原先系统使用XOSC 32K晶振作为32K晶振(XOSC32K_INSTALLED=TRUE),现在配置成 RCOSC32K作为系统的32K晶振(XOSC32K_INSTALLED=FALSE)。但是现在问题出来了。
在和dongle进行通信时,XOSC32K_INSTALLED=TRUE,再和dongle连接完成后,发送完成数据的时候都会收到一个GAP_LINK_TERMINATED_EVENT消息,因为使能了POWER_SAVING。这种情况下是不会有问题的。
出现问题的情况是,在dongle通信时,XOSC32K_INSTALLED=FALSE这个设置时,再连接完成后,通信完成时是没有收到GAP_LINK_TERMINATED_EVENT消息,直到和dongle链接通信超时时,才会有一个GAP_LINK_TERMINATED_EVENT消息出来。这就导致了,实际上链路已经断开的情况下,但是上层的GAP的connect的状态还是connect,但实际上已经TERMINATED,这个期间所有发出去的数据都是无效的,简单的从现象角度说就是remote在这段时间内,是不能进行通信的。直到重新开始广播链接
问题已解决。XOSC和内部的RCOSC 的32K晶振的频率有点不一样。XOSC是32.768kHz,RCOSC在校正的情况下(32-MHz使能才能校正)是32.753kHz,如果在PM2情况下,32-MHz关闭,没了校正估计这个偏差会比较大。
问题已解决。
XOSC和内部的RCOSC 的32K晶振的频率有点不一样。XOSC是32.768kHz,RCOSC在校正的情况下(32-MHz使能才能校正)是32.753kHz,如果在PM2情况下,32-MHz关闭,没了校正估计这个偏差会比较大。