一、简述
在实际BLE应用开发中,需要设备广播蓝牙标签MAC,比如苹果手机获取不到设备Mac,这是需要广播设备信息中附带MAC标识,外加自定义广播数据,如果考虑到存在安全隐患,因为广播包随时都可以被抓包。BLE协议栈自带加密解密API函数,可以通过调用此函数实现。如下:
//加密函数
LL_Encrypt(uint8 *key,uint8 *plaintextData,uint8 *encryptedData );
//解密函数
LL_EXT_Decrypt( uint8 *key,uint8 *encryptedData,uint8 *plaintextData );
这里主要介绍如何广播MAC地址,有两种实现方式:通过直接读寄存器和调用系统API函数,本篇介绍通过直接读寄存器方式获取MAC,通过调用API函数如下:
GAPRole_GetParameter(GAPROLE_BD_ADDR, MacAddress);
但是在系统初始化的时候只能通过读寄存器的方式实现,不能调用API获取MAC,此时MAC还未填入该变量中。
二、软件环境
协议栈版本:BLE-CC254x-1.4.0
编译器:IAR 8.20.2
三、步骤
1.读寄存器值,获取芯片MAC:
根据数据手册描述,从0x780e开始读6个字节就得到MAC地址了。
2.读取芯片MAC函数如下