问题1:KW36蓝牙设置连接间隔为12.5ms,server端在连接之后进入睡眠模式1,此时server可以在睡眠模式1中保持蓝牙连接,如果将连接间隔改为其他值,例如13.75ms,server进入睡眠模式1会断开连接,但如不进入睡眠模式,改连接间隔都不会断开连接。请问如何解决?代码如图片1所示。查看代码客户是通过语句PWR_ChangeDeepSleepMode(1); 进入睡眠模式1,代码如图片2所示
答:指导客户查询断开连接原因,发现断开原因是gHciConnectionTimeout_c,连接超时。出现连接超时的原因一般是对端设备蓝牙信号丢失了,客户需要确认对端设备的状态,确认是否进去了异常的状态,比如hardfault、死循环等,确认是否能进去断开连接回调以及断开连接原因,进一步分析。
问题2:客户手上的我司UWB-demo的基站蓝牙端有做低功耗机制吗?看我司代码是基站蓝牙收到BCM持续发送的周期报文03后,开始扫描。但是客户的实车中BCM会休眠。现在情况是当钥匙靠近后,BCM不会被唤醒,那么有什么方式可以在BCM处于休眠状态下基站蓝牙还能够持续扫描呢?去掉基站蓝牙接收BCM的03 ID的相关代码吗,有没有具体的实现方式修改我司基站蓝牙让BLE一直扫描
答:基站蓝牙端接收到报文03后会持续扫描,直到蓝牙连接上。断开连接后不会自动启动扫描,需要BCM再次发送报文03。如果想基站蓝牙在不连接的情况自动启动扫描,可以:
在BleApp_GenericCallback->gInitializationComplete_c->BleApp_Config后面调用BleApp_Start(true);
在BleApp_ConnectionCallback->gConnEvtDisconnected_c下面调用BleApp_Start(true);
这样基站蓝牙端一上电/断开连接后就会自动启动扫描。
问题3:KW36通过把数据存到flash方式实现复位后数据不丢失的功能,但是客户写入flash的次数很多,会影响产品寿命,这个是否有其他的解决办法?
答:客户可以使用模拟eeprom的功能,或者外接eeprom。