公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
zhji_4006061
Level 3
Level 3
25 replies posted 50 sign-ins First solution authored

我们用PSOC6 BLE当外围设备,手机当中心设备, 两者传输数据时,psoc6概率性(1%的概率)出现蓝牙挂死。具体现象是 断开手机蓝牙后,无法收到ble广播,硬件上查到ble的晶振一直处于起振状态,硬复位后恢复正常。

看起来是,psoc6的ble协议栈没有检测到对端设备已经断开连接,所以一直保持连接状态。这是psoc6协议栈的问题?还是晶振或者硬件时钟问题?

0 点赞
1 解答
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

那有没有收到CY_BLE_EVT_TIMEOUT事件?一般来说即使GATT Client蓝牙突然断掉,会首先产生CY_BLE_EVT_TIMEOUT事件继而产生CY_BLE_EVT_GAP_DEVICE_DISCONNECTED

你可以试下,在能复现问题的手机上,主动断开连接和直接关掉蓝牙,设备端反应有什么不一样。

在原帖中查看解决方案

0 点赞
4 回复数
Roy_Liu
Moderator
Moderator
Moderator
First comment on KBA 10 questions asked First comment on blog

WangS_81

Roy Liu
0 点赞
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

可以观察下出现问题的情况下,断开连接后,设备端有没有产生以下事件?

CY_BLE_EVT_GATT_DISCONNECT_IND

CY_BLE_EVT_GAP_DEVICE_DISCONNECTED

还有,断联之后重启广播的代码放在哪里的?

不同手机是否复现问题的概率也不一样?

0 点赞

1, 断开连接后,设备端没有收到disconnect事件

2,重启广播的代码放在 收到CY_BLE_EVT_GAP_DEVICE_DISCONNECTED事件后。

3,出现概率很低,在小米4 和 iphone8P 各出现了一次。很难复现问题。

0 点赞
ShipingW_81
Moderator
Moderator
Moderator
500 replies posted 250 solutions authored 250 replies posted

那有没有收到CY_BLE_EVT_TIMEOUT事件?一般来说即使GATT Client蓝牙突然断掉,会首先产生CY_BLE_EVT_TIMEOUT事件继而产生CY_BLE_EVT_GAP_DEVICE_DISCONNECTED

你可以试下,在能复现问题的手机上,主动断开连接和直接关掉蓝牙,设备端反应有什么不一样。

0 点赞