单片机
返回首页

[nrf51][nrf52] 非静态地址设置白名单,导致程序死机

2022-08-18 来源:csdn

静态地址规则

这种特定类型的蓝牙地址可作为公共地址的一种流行替代方法,因为使用它无需付费。


随机静态地址可以通过以下两种方式之一使用:


可以在设备的使用寿命内分配和固定它

可以在启动时更改

但是,无法在运行时更改它。


随机静态地址的格式如下:

在这里插入图片描述

随机静态地址格式


1和1固定在最低有效位

剩余的46位由开发人员/制造商随机选择

重要说明:所有蓝牙设备都必须使用以下两种类型之一:公共地址或随机静态地址。

在这里插入图片描述

静态设备地址的特征可总结为:


最高两个 bit 为 “11”。

剩余的 46bits 是一个随机数,不能全部为0,也不能全部为1。

在一个上电周期内保持不变。

下一次上电的时候可以改变。但不是强制的,因此也可以保持不变。如果改变,上次保存的连接等信息,将不再有效。

静态设备地址的使用场景可总结为:

46bits 的随机数,可以很好地解决“设备地址唯一性”的问题,因为两个地址相同的概率很小。

地址随机生成,可以解决公共设备地址申请所带来的费用和维护问题。


/* 确认是否为静态地址

静态设备地址的特征可总结为:

最高两个 bit 为 “11”。

剩余的 46bits 是一个随机数,不能全部为0,也不能全部为1。

在一个上电周期内保持不变。

下一次上电的时候可以改变。但不是强制的,因此也可以保持不变。如果改变,上次保存的连接等信息,将不再有效。

静态设备地址的使用场景可总结为:

46bits 的随机数,可以很好地解决“设备地址唯一性”的问题,因为两个地址相同的概率很小。

地址随机生成,可以解决公共设备地址申请所带来的费用和维护问题

*/


bool mac_addr_is_static(uint8_t *addr)

{

    if ((addr[5] & 0xC0) == 0xC0)

    {

        uint16_t sum = 0;

        for(uint8_t i = 0; i < 6; i++)

        {

            sum += addr[i];

        }

        // 00:00:00:00:00:C0   FF:FF:FF:FF:FF:FF

        if (sum != 0xC0 && sum != 0x5FA)

        {

            return true;

        }

    }

    return false;

}


进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 开关电源的基本组成及工作原理

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何构建一个触摸传感器电路

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章