CH573 安卓系统蓝牙兼容性问题

基于例程开发蓝牙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、蓝牙发起的连接协议和手机不一致。


只有登录才能回复,可以选择微信账号登录