链接断开错误码

下面分别介绍常见的断开链接错误码以及对应的处理措施。

ERR_CODE                         含义

0x08                   链接因为握手超时导致断开。

解决办法:

1 该 ERR_CODE 表明,链接因为握手连续失败,达到链接超时断开时间,底层主动断开链接。握手失败的可能原因是:a 链接参数设置的链接间隔时间太长,超过 1 秒,应用层软件通过链接参数更新 API 减少握手间隔。b 硬件天线的频偏与匹配参数没有调试过,需要咨询 FAE 人员如何调试这两个天线性能参数。c SDK 版本太旧,射频参数没有更新。

ERR_CODE                         含义

0x13                     链接被对端设备断开。

解决办法:

1 该 ERR_CODE 表明,某个链接被对端设备主动断开。

ERR_CODE                        含义

0x16                     链接被对本地设备自己主动断开。

解决办法:

1 该 ERR_CODE 表明,某个链接被本地设备主动断开,在应用层调用了 void gap_disconnect_req(uint8_t conidx) API断开某个链接后,会打印该 log 信息。

ERR_CODE                        含义

0x1F                     握手接收失败,导致开窗过大,底层主动断开链接。

解决办法:

1 该 ERR_CODE 表明,链接被底层主动断开,原因是握手失败导致开窗过大。解决办法参考 ERR_CODE:0x08 的解决办法

ERR_CODE                       含义

0x22                  发送的控制包未收到对端回复超时(默认是 40 秒),主动断开。或发送断开链接包之后,链接超时时间内没有收到对端的 ack。

解决办法:

1 该 ERR_CODE 表明,对端在规定时间 40s 内没有回复控制包,或者链接超时时间没有 ack 本地主动断开链接的包。

ERR_CODE                       含义

 0x28                 收到更新参数的时候,发现参数更新时刻已经过去了,主动断开。

解决办法:

1 该 ERR_CODE 表明,在收到下面这些控制包时,发现需要启动更新的时刻已经过去了,造成不能与对端设备同步更新,主动断开链接。解决办法参考 ERR_CODE:0x08 的解决办法。

a 对端申请链接参数更新的请求

b 对端申请 phy 更新的请求

c 对端申请 channel_map 更新的请求

ERR_CODE                       含义

0x3D                  执行加密操作时,发现密码不对,主动断开

解决办法:

1 该 ERR_CODE 表明,对链接进行加密操作时,对端的密码不对,底层主动断开链接。查看

a) 做为主机有没有针对未绑定设备直接进行加密链接操作,做为主机有没有调用绑定管理的绑定信息删除函数,

删掉绑定信息。有没有更改绑定信息存储 flash 的起始地址。

b) 做为从机时,有没有调用绑定管理的绑定信息删除函数,删掉绑定信息。有没有更改绑定信息存储 flash 的起始地址。

ERR_CODE                       含义

 BLE连接断开错误码_错误码            建立链接时,没有收到第一包数据,建立链接失败,主动断开。

解决办法:

1 该 ERR_CODE 表明,在链接建立时,未收到对端设备第一包的数据,导致链接没有建立起来。此种问题很可能跟天线射频性能有关系,参考 ERR_CODE:0x08 的处理办法,调试天线频偏和匹配参数,同时更新 SDK 到最新版本。