您好
問題描述:
我們使用CC2640R2 LaunchPad及simple_peripheral_oad_offchip軟體,並且為使所有連線都需要有配對過程,有修改了pairmode=GAPBOND_PAIRING_MODE_INITIATE。
正常現象: 在Nexus 6P上使用BLE Scanner/SensorTag apk在配對失敗/取消配對之後皆會中斷連線。
異常現象: 在Iphone 8上使用BLE Scanner/SensorTag/LightBlue在配對之敗/取消配對之後都不會中斷。
Air Sniffer分析:
Android在SMP Pairing Failed之後可以看到有LL_TERMINATE_IND,但iOS上則沒有。
左測是Nexus, 右側是Iphone
已嘗試修改GAPBOND_SECURE_CONNECTION及GAPBOND_BONDING_ENABLED其他的設定組合,
仍然有問題,需要麻煩您幫忙分析,謝謝
Viki Shi:
不同手机系统的蓝牙参数有区别,IOS有自己的设定。建议去官网对比一下蓝牙参数
Kengyen Chen:
回复 Viki Shi:
您好, 補充說明:在未修改更新參數之前,可正常與Iphone連線,但是pin code輸入錯誤/取消配對卻不會中斷連線。 嘗試將參數修正符合以下規範,問題仍然存在,請問還有什麼地方遺漏了嗎? Interval Min ≥ 15 ms (multiples of 15 ms) Interval Min + 15 ms ≤ Interval Max (Interval Max == 15 ms is allowed) Interval Max * (Slave Latency + 1) ≤ 2 seconds Interval Max * (Slave Latency + 1) * 3 < connSupervisionTimeout Slave Latency ≤ 30 2 seconds ≤ connSupervisionTimeout ≤ 6 seconds 修正如下 #define DEFAULT_DESIRED_MIN_CONN_INTERVAL 12 // 12*1.25ms( 至少15ms) #define DEFAULT_DESIRED_MAX_CONN_INTERVAL 12 // 大於等於15ms #define DEFAULT_DESIRED_SLAVE_LATENCY 0 //小於30 #define DEFAULT_DESIRED_CONN_TIMEOUT 3000 //不能大於6000(6秒)
Kengyen Chen:
回复 Kengyen Chen:
您好,
補充pair state狀態:
直接取消pin code會看到pair state callback回傳的state是SMP_PAIRING_FAILED_UNSPECIFIED
故意輸入錯誤pin code可以看到回傳的state是SMP_PAIRING_FAILED_CONFIRM_VALUE此外,iphone 8在設定中搜索藍芽裝置的時候會找不到CC2640R2 LaunchPad裝置,需使用LightBlue/BlE Scanner/SensorTag才能找到。
請問這個現象有可能是什麼原因呢?我們目前有六台 LaunchPad都是搜不到的。(皆是使用simple_peripheral_oad_offchip)
TI中文支持网


