ble_app_security选用USER_CFG_PRIV_GEN_RSLV_RND,绑定后无法连接。

18个员额/ 0个新员额
最后发表
daniel59
离线
最后看到:一年九个月前
加入:2016-01-08 04:34
ble_app_security选用USER_CFG_PRIV_GEN_RSLV_RND,绑定后无法连接。

问题如标题,我们现在是想要每个设备不同的地址,在官方实例4中发现有相关内容。

发现:
定义USER_CFG_PRIV_GEN_STATIC_RND的话,虽说地址为随机生成,但是无法保存,下次上电地址就会变化。
定义USER_CFG_PRIV_GEN_RSLV_RND的话,虽然绑定后就算重新开机地址也不会变了,广播也都能发现,但是无法连接到设备。

请问这是怎么回事呢?

设备:
CYibin
离线
最后看到:10个月4天前
工作人员
加入:2017-12-14 02:48
你好, 请问是基于哪个工程开发的?

你好,

请问是基于哪个工程开发的?

daniel59
离线
最后看到:一年九个月前
加入:2016-01-08 04:34
您好!呃就是基于官方实例4:安全

您好!

呃就是基于官方实例4:安全

CYibin
离线
最后看到:10个月4天前
工作人员
加入:2017-12-14 02:48
你好,

你好,

你所说的官方实例,指的是哪份文档吗?

请描述你所用工程所属的SDK版本,比如SDK5.0.4中ble_app_barebone工程。

另外,连接不上,手机有什么提示,设备有什么打印信息(如果有开打印的话)?

daniel59
离线
最后看到:一年九个月前
加入:2016-01-08 04:34
您好!

您好!

是SDK5.0.4中的ble_app_security。并且只修改了#定义USER_CFG_PRIV_GEN_RSLV_RND

我用nrf连接测试,是绑定后可以找到设备,但是连接并断开一次后,就无法再次连接了。

用祝福扫描仪测试,绑定后直接就无法找到设备了。

CYibin
离线
最后看到:10个月4天前
工作人员
加入:2017-12-14 02:48
“我用nrf连接测试,是绑定后可以找到设备

“我用nrf连接测试,是绑定后可以找到设备,但是连接并断开一次后,就无法再次连接了。”

可能是你没把手机系统设置蓝牙列表中的设备的配对信息删除掉

“用祝福扫描仪测试,绑定后直接就无法找到设备了。”

可能是已经连接上了。建议将手机蓝牙关掉后,重新打开

daniel59
离线
最后看到:一年九个月前
加入:2016-01-08 04:34
您好!

您好!

用祝福扫描仪,重新启动手机蓝牙后可以发现,但是无法连接。

您前面一句话是什么意思?绑定了为什么要删除掉呢?

CYibin
离线
最后看到:10个月4天前
工作人员
加入:2017-12-14 02:48
蓝牙加密连接,分几步

蓝牙加密连接,分几步

1、连接

2、配对,双方交换秘钥信息,方式有几种,常见的,就是手机上会弹出一个配对窗口,用户点确定之后,完成授权过程,之后配对成功

3、绑定,将第3步涉及到的秘钥信息,保存起来

4、链路加密,实现加密传输

完成绑定的设备,下次连接的时候,无需再进行配对,可直接从绑定的时候保存的信息中,获得秘钥,实现链路加密。

当手机、设备有一方丢失了绑定信息时,会导致连接失败

当手机、设备都清除绑定信息时,可重新配对、绑定。

清除手机已配对列表,可以清除该信息

daniel59
离线
最后看到:一年九个月前
加入:2016-01-08 04:34
您好!

您好!

可是我现在的情况没有丢失绑定信息呀?

我的步骤是:

连接,绑定,输入“123456”,断开连接,后面就无法再次连接了。

CYibin
离线
最后看到:10个月4天前
工作人员
加入:2017-12-14 02:48
无法再次连接,一般的原因是有一方的配对信息丢失了。这时候

无法再次连接,一般的原因是有一方的配对信息丢失了。这时候,你就需要清空双方的配对信息,再重新连接。

清空双方的配对信息的方式是,手机端,清除配对列表中的设备,设备端,如果是凯尔调试模式,则重新上电,如果是烧录到flash中了,则重新烧录程序。

daniel59
离线
最后看到:一年九个月前
加入:2016-01-08 04:34
呃,为什么会丢失呢?这样不是连绑定都无法绑定了?

呃,为什么会丢失呢?这样不是连绑定都无法绑定了?

如果我的设备以后要正常长久的使用,该怎么办。

CYibin
离线
最后看到:10个月4天前
工作人员
加入:2017-12-14 02:48
可将配对信息保存在flash中,相关的处理,见应用

可将配对信息保存在flash中,相关的处理,见app_bond_db.c

daniel59
离线
最后看到:一年九个月前
加入:2016-01-08 04:34
您好!

您好!

工程默认就是将债券db保存在flash中spi的呀,我用片段工具看也的确保存成功了。

CYibin
离线
最后看到:10个月4天前
工作人员
加入:2017-12-14 02:48
你好,

你好,

对于问题:“我用nrf连接测试,是绑定后可以找到设备,但是连接并断开一次后,就无法再次连接了”

请问你的测试手机型号是?用其它手机会不会有这个问题?

另外,这个问题是因为改变蓝牙地址类型引起的吗?用默认的公共蓝牙地址,会不会有这个问题吗?

daniel59
离线
最后看到:一年九个月前
加入:2016-01-08 04:34
您好!

您好!

我使用的手机是一加5系统版本为8.1.0,用其他手机也有这个问题的。

是的,用默认的公共和静态都没问题。

可是我想做到每个设备有随机地址并且绑定后可以保存地址不再改变。可是用静态的话重新上电就会重新生成新地址。

CYibin
离线
最后看到:10个月4天前
工作人员
加入:2017-12-14 02:48
你好, 请问这样做的目的是什么?

你好,

请问这样做的目的是什么?

daniel59
离线
最后看到:一年九个月前
加入:2016-01-08 04:34
呃,resoveable的不是安全性高吗?

呃,resoveable的不是安全性高吗?

公开后续批量生产的话还要使用烧录器不是吗?

CYibin
离线
最后看到:10个月4天前
工作人员
加入:2017-12-14 02:48
你好,

你好,

地址分公共和随机类型。若想保持蓝牙地址在产品的整个生命周期不变,只能用公共类型