CC2541-修改蓝牙名称和mac地址
使用的蓝牙芯片是CC2541, 本文章介绍修改蓝牙名称和蓝牙MAC地址的方法。
修改蓝牙名称:
在数组scanRspData[ ]里,存放的就是蓝牙名称,你可以自己设置。GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );
修改蓝牙MAC地址:
蓝牙的MAC是全球唯一的,在Flash中有一块只读区域,从地址0x780E开始,蓝牙的MAC以小端方式存放在里面。
在TI的Peripheral例程里面,添加一个特征值,只读属性,6字节长度(蓝牙MAC长度为48-bit,6字节)。
读取蓝牙MAC地址时有一种非常简便的方法,就是直接去读寄存器里的MAC地址 ,
The Information Page is a 2-KB read-only region that stores various device information. Among other
things, it contains for IEEE 802.15.4 or Bluetooth low energy compliant devices a unique IEEE address
from the TI range of addresses. For CC253x, this is a 64-bit IEEE address stored with least-significant
byte first at XDATA address 0x780C. For CC2540/41, this is a 48-bit IEEE address stored with
least-significant byte first at XDATA address 0x780E
于是读出寄存器中的值,就可以得到MAC地址了 ,这里是只读空间。
- void ReadMac(unsigned char *TempMacAddress,int len) // Len 一定是6
- {
- TempMacAddress[5]=XREG(0x780E); // 直接指向指针内容
- TempMacAddress[4]=XREG(0x780F);
- TempMacAddress[3]=XREG(0x7810);
- TempMacAddress[2]=XREG(0x7811); // define 函数直接读出数据
- TempMacAddress[1]=XREG(0x7812);
- TempMacAddress[0]=XREG(0x7813);
- return ;
- }
顺便说一下XREG的定义
#define XREG(addr) ((unsigned char volatile __xdata *) 0)[addr]
volatile 是为了在优化的时候值被改写,xdata是放在xdata空间中。
这句话是为了直接读出addr地址的内容!!!
议栈中也可以调用系统的API获取MAC地址
static uint8 MAC_Address[B_ADDR_LEN]={0}; // mac 地址
GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);
osal_memcpy( MAC_Address,ownAddress,B_ADDR_LEN);
上面说的是安卓读取MAC的方法。
苹果手机无法在连接中获得MAC,苹果手机没有提供读取底层MAC的API,所以只能通过广播MAC的方式传给苹果手机。
但是将MAC放在广播中,同时也会导致数据的不安全。还有一种方法是把MAC地址放在广播数组里,发送出去。将MAC地址放在scanRspData(GAP - SCAN RSP data)数组里。
上面说的是读取BLE的MAC地址,要是修改的话,可以如下修改:
unsigned char DeviceMAC[6] = {0x88,0x88,0x88,0x88,0x88,0x88};
HCI_EXT_SetBDADDRCmd(DeviceMAC);
之后,蓝牙的mac地址就修改为88:88:88:88:88:88.
CC2541-修改蓝牙名称和mac地址相关推荐
- CC2541修改蓝牙名称为中文名称
CC2541修改蓝牙名称为中文名称 CC2541的中文名称支持使用URL编码,可以使用URL编码转换器,如在百度搜索URL在线转换 例如输入我,点击URL编码,生成了%E6%88%91.我们这里使用三 ...
- mac地址修改_全球首款支持电脑名称和MAC地址修改的浏览器 VMLogin超级防关联指纹浏览器 同时支持模拟真人输入,支持自定义经纬度...
VMLogin - 超级防关联指纹浏览器:用于亚马逊测评.FACEBOOK广告投放等多平台多账号批量注册多登防关联管理软件.用虚拟浏览器配置文件代替若干电脑,具有浏览器指纹防护功能,每个浏览器文件的C ...
- 修改手机WIFI的MAC地址,实现防止路由器拉黑
*修改手机WIFI的MAC地址* *说明:* 1.手机可以连接WIFI但是没有网速 2.知道密码,但连接不上,一般都是因为路由器给你拉黑或者限速了. *那么路由器是如何知道是你连接了:判断如下:登录路 ...
- BES2300x笔记(6) -- 如何修改蓝牙名称
哈喽大家好,这是该系列博文的第六篇~ 篇~ <<[系列博文索引]快速通道 >> 一.前言 有时,销售对接的客户需要送样,就想拿仓库现有的产品改下蓝牙名称,然后寄给客户,但咨询过 ...
- 修改USB无线网卡物理地址MAC地址的有效方法
最近总是被人限制网速,所以要改mac地址.结果发现win10 64位并且是usb的无线网卡(其实就是我的yoga超极本),网卡参数里面竟然没有network address.并且手动改注册表也无效.折 ...
- php设置公网ip,修改公网IP和mac地址的建议方法分享
最近本人需要用php写一个模拟程序,该程序需要不断变化公网IP地址,以及修改本机的mac地址. 经过一段时间的研究,我发现了解决之道.在这里将此方法和大家分享,我希望此方法在某时某地能. 对读者有所助 ...
- linux系统如何改电脑地址,如何修改电脑的操作系统MAC地址
MAC地址在网卡中是固定的,每张网卡的MAC地址都不一样.网卡在制作过程中,厂家会在它的EPROM里面烧录上一组数字,这组数字,每张网卡都各不相同,这就是网卡的MAC(物理)地址.下面是学习啦小编跟大 ...
- 用CMD命令查看局域网电脑IP地址,电脑名称及MAC地址
C:\Documents and Settings\Administrator>net view 服务器名称 注释 ---------------------------- ...
- android蓝牙获取mac地址,如何获得蓝牙连接设备的MAC地址在android中
我在android中通过蓝牙发送图像,并且想要获取图像发送到的设备的MAC地址.如何获得蓝牙连接设备的MAC地址在android中 请在下面找到我的代码. private void bluetooth ...
最新文章
- PIE SDK打开静止卫星数据
- JAV A获取项目路径
- Eclipse 创建 Java 包
- 将下图的nfa确定化为dfa_作业8 非确定的自动机NFA确定化为DFA
- 查看ssh端口号_萌新云服务器折腾记-SSH配置
- matlab宏参赛,MATLAB杯无人机大赛 | 决赛通知!
- 00018_流程控制语句switch
- 6-2-JSP基本语法
- MDX Step by Step 读书笔记(四) - Working with Sets (使用集合)
- ubuntu下caffe 安装记录(含GPU)
- 利用Civil 3D API更改曲面的样式
- linux和emwin的区别,emWin“自带软件GUIBuilder的使用”
- 【转载】一个c程序在执行main函数之前和main之后都做了那些事情
- JTXQ、JTT部标模拟终端使用说明 --2 JTT808协议菜单
- 灵敏度 和 特异度的计算
- 看风水不如依照这些定律改造命运
- C语言编程练习:猜数游戏
- Pygame学习笔记 4 —— 时间与运动
- nacos的feign报错Error creating bean with name ‘configurationPropertiesBeans‘ defined in class path reso
- 平板终结者android,苹果终结者,4款高性能Android平板推荐