TI中文支持网
TI专业的中文技术问题搜集分享网站

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

请问TI的工程师:

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

admin admin1:

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

Susan Yang:

回复 admin admin1:

你会收到一个 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

da qin zheng sheng:

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);等

da qin zheng sheng:

回复 da qin zheng sheng:

测试结果正确!

赞(0)
未经允许不得转载:TI中文支持网 » 关于如何获得cc2541 MAC地址的问题
分享到: 更多 (0)