你好,
我有一个蓝牙问题,想请教你。如何保证蓝牙地址的唯一性,相同的程序被烧成不同的芯片,如何保证蓝牙地址的不同?
您使用的是哪种BD地址?是静态随机的吗?你能分享更多关于这个的信息吗?
谢谢,下午好
我说的是蓝牙MAC地址。什么我说的是蓝牙MAC地址。问题是,下载相同的程序将具有相同的蓝牙MAC地址
设备正在公布的BD地址是什么?如果您不使用随机BD地址,设备将用应用程序代码中设置的BD地址播发。你能为你所取得的成就分享更多的意见吗?BD地址的类型是什么?
是的,这是广告地址。是吗一个随机的蓝牙地址保证每个BD地址是不同的?如何使用随机蓝牙地址,请指导我。
为了使用静态随机BD地址进行广告,您应该将user\u adv\u conf结构的.addr\u src项更改为GAPM\u GEN\u static\u RND\u addr。此结构位于user\u config.h文件下。请查看app\u easy\u gap\u undirected\u advertise\u start\u create\u msg()函数,该函数为可连接的无向事件创建广告消息。如果用户_配置地址配置为GAPM\u GEN\u STATIC\u RND\u ADDR时,将触发generate\u STATIC\u random\u address(),生成48位静态随机地址。
我找不到app\u easy\u gap\u undirected\u advertized\u start\u create\u msg()函数?请说明该功能的位置。
它位于5.0.4\sdk\app\u modules\src\app\u common\app.csdk路径下。您使用的是哪个SDK版本?您已经为DA14580产品添加了标签,因此建议使用5.0.4版SDK。
对不起,我标记的产品和SDK是错误的,我使用的是DA14695,并且使用的是最新的SDK版本
默认情况下,设备以静态公共BD地址开始广告。public address的默认值在sdk/ble/config/ble\u config.h文件中声明。如果需要定义一个新的值,那么新的宏定义应该发生在config/custom\u config\u xxx.h文件中,所有自定义定义都应该在该文件中声明。例如:
#定义默认的静态地址{0x01,0x02,0x03,0x04,0x05,0x06}
在设置随机BD地址的情况下,应执行以下操作:
/*初始化与BD地址相关的BLE结构*/static const own\u address\u t user\u BD\u address={.addr\u type=PRIVATE\u RANDOM\u NONRESOLVABLE\u address,.addr={0x01、0x02、0x03、0x04、0x05、0x06};/*设置蓝牙地址*/BLE\u gap\u address\u Set(&user\u BD\u address,0x00FF);
.addr将被忽略。
如果你按照你的例子,那么在大规模生产中,每个产品的蓝牙MAC地址将是相同的。这样肯定不行,有没有更好的办法?
不,它对于每个设备都是唯一的,并且设备的BD地址至少每150秒改变一次。但是如果您将地址类型设置为PRIVATE\u RANDOM\u NONRESOLVABLE\u address,正如PM\u Dialog所说,您将无法连接。不可解析地址用于信标或不可连接的设备。
我这样设置我的唯一地址:
static const own\u address\u t own\u addr={.addr\u type=PRIVATE\u RANDOM\u RESOLVABLE\u address,};err=ble\u gap\u address\u set(&own\u addr,defaultBLE\u address\u RENEW DURATION);
您可以更改地址续订期限。
不幸的是,在生产中没有像nRF52 mcu那样的私有静态BD地址。
我使用ble\u gap\u address\u set(&user\u bd\u address,0x00FF)来设置bd地址。为什么这个设备可以被安卓手机扫描,而不能被苹果手机扫描?我的数据如下:
/*初始化与BD地址相关的BLE结构*/静态自身\u地址\u t用户\u bd \u地址={.addr\u type=专用\u静态\u地址,.addr={0x01、0x02、0x03、0x04、0x05、0x06}};
让我解释一下在我们的SDK中如何处理BD地址。当设备引导时,BLE适配器将访问NVMS\u PARAM\u PART分区,并检查是否在该分区中放置了有效的BD地址。该分区的第一个条目是NVPARAM\u BLE\u PATFORM\u BD\u ADDRESS,长度为7字节:
-BD地址为6字节
-1字节,指定写入的BD地址的有效性。
您还可以使用SmartSnippets工具箱来读取NVMS\u PARAM\u部分。
如果用户没有在该分区中写入任何BD地址,或者如果标志无效(禁用),那么应用程序将采用默认的公共BD地址。请检查BLE适配器(ad\BLE.c文件)中的read\u public\u address()函数。
如果开发人员没有提供设备地址,则使用蓝牙公共地址。public address的默认值在sdk/ble/config/ble\u config.h文件中声明。如果需要定义一个新的值,那么新的宏定义应该发生在config/custom\u config\u xxx.h文件中,所有自定义定义都应该在该文件中声明。
update\u bd\u address()函数的目标是基于TRNG(真随机数生成器)引擎生成一个bd地址,并通过调用ble\u gap\u address\u set()来设置它。然后,先前生成的地址将写入NVMS\u PARAM\u部分。因此,在冷启动(重置)发生后,设备将使用写入闪存中的BD地址。请在附件中找到源代码。您还将找到用于验证的代码段。
通常,有三(3)种方式来配置BD地址:
1定义唯一的公共广播。因此,defaultBLE\u STATIC\u ADDRESS宏应该在custom\u config\u xxx.h中定义
2在NVMS\u PARAM\u PART flash分区中写入一个BD地址。SDK将覆盖defaultBLE\u STATIC\u address宏定义中定义的公共地址。
三。通过调用ble\u gap\u address\u set()API定义唯一的BD地址。可以随时调用此API来更改设备的BD地址。
你好,
您使用的是哪种BD地址?是静态随机的吗?你能分享更多关于这个的信息吗?
谢谢,下午好
你好,
我说的是蓝牙MAC地址。什么我说的是蓝牙MAC地址。问题是,下载相同的程序将具有相同的蓝牙MAC地址
你好,
设备正在公布的BD地址是什么?如果您不使用随机BD地址,设备将用应用程序代码中设置的BD地址播发。你能为你所取得的成就分享更多的意见吗?BD地址的类型是什么?
谢谢,下午好
你好,
是的,这是广告地址。是吗一个随机的蓝牙地址保证每个BD地址是不同的?如何使用随机蓝牙地址,请指导我。
你好,
为了使用静态随机BD地址进行广告,您应该将user\u adv\u conf结构的.addr\u src项更改为GAPM\u GEN\u static\u RND\u addr。此结构位于user\u config.h文件下。请查看app\u easy\u gap\u undirected\u advertise\u start\u create\u msg()函数,该函数为可连接的无向事件创建广告消息。如果用户_配置地址配置为GAPM\u GEN\u STATIC\u RND\u ADDR时,将触发generate\u STATIC\u random\u address(),生成48位静态随机地址。
谢谢,下午好
你好,
我找不到app\u easy\u gap\u undirected\u advertized\u start\u create\u msg()函数?请说明该功能的位置。
你好,
它位于5.0.4\sdk\app\u modules\src\app\u common\app.csdk路径下。您使用的是哪个SDK版本?您已经为DA14580产品添加了标签,因此建议使用5.0.4版SDK。
谢谢,下午好
你好,
对不起,我标记的产品和SDK是错误的,我使用的是DA14695,并且使用的是最新的SDK版本
你好,
默认情况下,设备以静态公共BD地址开始广告。public address的默认值在sdk/ble/config/ble\u config.h文件中声明。如果需要定义一个新的值,那么新的宏定义应该发生在config/custom\u config\u xxx.h文件中,所有自定义定义都应该在该文件中声明。例如:
在设置随机BD地址的情况下,应执行以下操作:
.addr将被忽略。
谢谢,下午好
你好,
如果你按照你的例子,那么在大规模生产中,每个产品的蓝牙MAC地址将是相同的。这样肯定不行,有没有更好的办法?
不,它对于每个设备都是唯一的,并且设备的BD地址至少每150秒改变一次。但是如果您将地址类型设置为PRIVATE\u RANDOM\u NONRESOLVABLE\u address,正如PM\u Dialog所说,您将无法连接。不可解析地址用于信标或不可连接的设备。
我这样设置我的唯一地址:
您可以更改地址续订期限。
不幸的是,在生产中没有像nRF52 mcu那样的私有静态BD地址。
你好,
我使用ble\u gap\u address\u set(&user\u bd\u address,0x00FF)来设置bd地址。为什么这个设备可以被安卓手机扫描,而不能被苹果手机扫描?我的数据如下:
/*初始化与BD地址相关的BLE结构*/
静态自身\u地址\u t用户\u bd \u地址={
.addr\u type=专用\u静态\u地址,
.addr={0x01、0x02、0x03、0x04、0x05、0x06}
};
你好,
让我解释一下在我们的SDK中如何处理BD地址。当设备引导时,BLE适配器将访问NVMS\u PARAM\u PART分区,并检查是否在该分区中放置了有效的BD地址。该分区的第一个条目是NVPARAM\u BLE\u PATFORM\u BD\u ADDRESS,长度为7字节:
-BD地址为6字节
-1字节,指定写入的BD地址的有效性。
您还可以使用SmartSnippets工具箱来读取NVMS\u PARAM\u部分。
如果用户没有在该分区中写入任何BD地址,或者如果标志无效(禁用),那么应用程序将采用默认的公共BD地址。请检查BLE适配器(ad\BLE.c文件)中的read\u public\u address()函数。
如果开发人员没有提供设备地址,则使用蓝牙公共地址。public address的默认值在sdk/ble/config/ble\u config.h文件中声明。如果需要定义一个新的值,那么新的宏定义应该发生在config/custom\u config\u xxx.h文件中,所有自定义定义都应该在该文件中声明。
update\u bd\u address()函数的目标是基于TRNG(真随机数生成器)引擎生成一个bd地址,并通过调用ble\u gap\u address\u set()来设置它。然后,先前生成的地址将写入NVMS\u PARAM\u部分。因此,在冷启动(重置)发生后,设备将使用写入闪存中的BD地址。请在附件中找到源代码。您还将找到用于验证的代码段。
通常,有三(3)种方式来配置BD地址:
1定义唯一的公共广播。因此,defaultBLE\u STATIC\u ADDRESS宏应该在custom\u config\u xxx.h中定义
2在NVMS\u PARAM\u PART flash分区中写入一个BD地址。SDK将覆盖defaultBLE\u STATIC\u address宏定义中定义的公共地址。
三。通过调用ble\u gap\u address\u set()API定义唯一的BD地址。可以随时调用此API来更改设备的BD地址。
谢谢,下午好