微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于如何获得cc2541 MAC地址的问题

关于如何获得cc2541 MAC地址的问题

时间:10-02 整理:3721RD 点击:

请问TI的工程师:

HCI_ReadBDADDRCmd()是可以读mac addr,但是这个函数的返回值为空,并且参数也为空,请问他怎么得到mac地址的?

central role中在 simpleBLECentralEventCB回调的GAP_DEVICE_DISCOVERY_EVENT事件中,你扫描一下就会在这边得到扫描到的所有设备的地址

你会收到一个 HCI_COMMAND_COMPLETE_EVENT_CODE 事件.

举例, 假如你用的是simpleBLEPeripheral工程, 到peripheral.c 中, 找到 static void gapRole_ProcessOSALMsg( osal_event_hdr_t *pMsg )

其中 

case HCI_GAP_EVENT_EVENT:
if ( pMsg->status == HCI_COMMAND_COMPLETE_EVENT_CODE )

加个判断:

if ( pPkt->cmdOpcode == HCI_READ_BDADDR )

然后 pPkt  里面应该就有地址了.

参考链接 http://www.deyisupport.com/question_answer/wireless_connectivity/f/45/t/22874.aspx?keyMatch=HCI_COMMAND_COMPLETE_EVENT_CODE&tisearch=Search-CN

For CC2540 and CC2541, this is a 48-bit IEEE address stored with least-significant byte first at XDATA address 0x780E.

可以这样读取:mac1=XREG(0x780E);

mac2=XREG(0x780f);

mac3=XREG(0x7810);等

测试结果正确!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top