DA14580出厂时,没有预先烧入mac 地址:
对于蓝牙设备,有“Random Devices Address” 和”public device address", public adress(公开地址)需要向IEEE组织注册申请,而"“Random Devices Address”(随机地址)则不需要注册和申请,它又可以分为:Static Address(静态地址)和private adress(私有地址),静态地址是每次设备上电随机产生,使用期间不变,除非下次重新上电,而私有地址,有可分为:non-revosable 和resolvalble 两种,区别在于随机数产生的方法不同
静态地址是每次设备上电随机产生 这个怎么配置,在哪里配置,有参考文档吗? 谢谢!
设备上电地址随机产生,芯片并不能给出结果;需要你外部PC算好后,写入OTP对应位置里面
按照蓝牙的规范,静态随机地址的话,每次设备上电应该重新生产蓝牙地址。这种情况应该代码里如何处理/
你只能去写寄存器0x40000024和0x40000028了,前面是低四位,后面存高2位,小端排列
sdk5.0.4 在广播前写这两个寄存器好像没什么用了。不过强行修改nvds_data_storage.NVDS_TAG_BD_ADDRESS是可以的。
蓝牙地址是 public addr 时,修改此处可修改蓝牙地址
你好,我想问一下,0x40000024和0x40000028这两个寄存器功能是什么?怎么用?资料上没有这两个寄存器,谢谢另外,nvds_data_storage.NVDS_TAG_BD_ADDRESS中的地址是public device address还是Random Devices Address?谢谢
你好,
0x40000024,0x40000028 是蓝牙地址设置相关的寄存器,为底层所用;
NVDS_TAG_BD_ADDRESS 默认情况下,是作为 public 地址;
蓝牙地址相关、常用的操作如下:
修改地址类型,可通过宏:USER_CFG_ADDRESS_MODE
修改 public 地址,可通过宏:CFG_NVDS_TAG_BD_ADDRESS
设备上电后,会先读取 OTP Header 中的 蓝牙地址字段,如果为空,则会使用 CFG_NVDS_TAG_BD_ADDRESS 作为蓝牙地址;否则,以 OTP header 中的作为蓝牙地址
如果想要使用自己自定义的 蓝牙地址(比如上电时把 flash 的 id 作为蓝牙地址),可在函数 read_otp_header(void) 中,修改 dev_bdaddrmemcpy(&dev_bdaddr, (uint8_t *) OTP_HDR_BDADDR_ADDR, sizeof(dev_bdaddr));
DA14580出厂时,没有预先烧入mac 地址:
对于蓝牙设备,有“Random Devices Address” 和”public device address", public adress(公开地址)需要向IEEE组织注册申请,而"“Random Devices Address”(随机地址)则不需要注册和申请,它又可以分为:Static Address(静态地址)和private adress(私有地址),静态地址是每次设备上电随机产生,使用期间不变,除非下次重新上电,而私有地址,有可分为:non-revosable 和resolvalble 两种,区别在于随机数产生的方法不同
静态地址是每次设备上电随机产生 这个怎么配置,在哪里配置,有参考文档吗? 谢谢!
设备上电地址随机产生,芯片并不能给出结果;需要你外部PC算好后,写入OTP对应位置里面
按照蓝牙的规范,静态随机地址的话,每次设备上电应该重新生产蓝牙地址。这种情况应该代码里如何处理/
你只能去写寄存器0x40000024和0x40000028了,前面是低四位,后面存高2位,小端排列
sdk5.0.4 在广播前写这两个寄存器好像没什么用了。不过强行修改nvds_data_storage.NVDS_TAG_BD_ADDRESS是可以的。
蓝牙地址是 public addr 时,修改此处可修改蓝牙地址
你好,我想问一下,0x40000024和0x40000028这两个寄存器功能是什么?怎么用?资料上没有这两个寄存器,谢谢
另外,nvds_data_storage.NVDS_TAG_BD_ADDRESS中的地址是public device address还是Random Devices Address?谢谢
你好,
0x40000024,0x40000028 是蓝牙地址设置相关的寄存器,为底层所用;
NVDS_TAG_BD_ADDRESS 默认情况下,是作为 public 地址;
蓝牙地址相关、常用的操作如下:
修改地址类型,可通过宏:USER_CFG_ADDRESS_MODE
修改 public 地址,可通过宏:CFG_NVDS_TAG_BD_ADDRESS
设备上电后,会先读取 OTP Header 中的 蓝牙地址字段,如果为空,则会使用 CFG_NVDS_TAG_BD_ADDRESS 作为蓝牙地址;否则,以 OTP header 中的作为蓝牙地址
如果想要使用自己自定义的 蓝牙地址(比如上电时把 flash 的 id 作为蓝牙地址),可在函数 read_otp_header(void) 中,修改 dev_bdaddr
memcpy(&dev_bdaddr, (uint8_t *) OTP_HDR_BDADDR_ADDR, sizeof(dev_bdaddr));