基于例程开发蓝牙hid设备,目前测试pc,mac,ios的兼容性都没有问题。但是使用华为mate40手机进行连接的时候,会出现以下情况:
1.能够连接和绑定信息,但是执行了绑定的函数之后,就像卡了一样,手机端仍然显示“正在连接”,大约过了10s左右,然后单片机这边就会
Disconnected.. Reason:8
Advertising..
手机那边也无法连接了,再点击也无法连接。
请问大概是什么问题,应该如何优化?又或者应该检测哪部分的代码逻辑?
基于例程开发蓝牙hid设备,目前测试pc,mac,ios的兼容性都没有问题。但是使用华为mate40手机进行连接的时候,会出现以下情况:
1.能够连接和绑定信息,但是执行了绑定的函数之后,就像卡了一样,手机端仍然显示“正在连接”,大约过了10s左右,然后单片机这边就会
Disconnected.. Reason:8
Advertising..
手机那边也无法连接了,再点击也无法连接。
请问大概是什么问题,应该如何优化?又或者应该检测哪部分的代码逻辑?
是默认exmaple 还是自己修改后出的问题,如果是默认的example,
找到 GAPRole_PeripheralStartDevice函数
把第二个参数的通常是hidDevBondCB 里面的两个回调函数传入的值打印出来:
把hidDevPasscodeCB函数的传入的几个变量打印出来,
把hidDevPairStateCB函数传入的变量也给打印处出来,
分别跟正常的设备连接,看打印的变化情况,
然后再跟你不正常的mate40 连接,看打印的情况,对吧两个打印的差异。
经过对比hidDevPasscodeCB和hidDevPairStateCB的函数参数都是一样的,发生Disconnected.. Reason:8是在状态
GAPBOND_PAIRING_STATE_BOND_SAVED之后的
[12:44:03.909]收←◆Connected..
hidDevPairStateCB--------------
connHandle--------------1
state--------------0
status--------------0
GAPBOND_PAIRING_STATE_STARTED
hidDevPasscodeCB--------------
connectionHandle--------------1
uiInputs--------------1
uiOutputs--------------0
Send passcode response
[12:44:09.419]收←◆input passcode : 989505
hidDevPairStateCB--------------
connHandle--------------1
state--------------1
status--------------0
GAPBOND_PAIRING_STATE_COMPLETE
hidDevPairStateCB--------------
connHandle--------------1
state--------------3
status--------------0
Bond Info Saved
[12:44:20.700]收←◆Disconnected.. Reason:8
Advertising..
请求帮助~~~
08断链,是手机发起的断链,
可能原因:
1、手机不兼容,然后手机发起断链;
2、蓝牙发起的连接协议和手机不一致。