微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541读取BDADDR问题

CC2541读取BDADDR问题

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

 void SimpleBLEPeripheral_Init( uint8 task_id )
{
  uint8 ownAddress[B_ADDR_LEN];
  GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);

请教下,想在从机初始化时读取BDADDR,程序这样写为什么读不到呢, ownAddress数组的值全是0x00

初始化具体是指哪里呢?

这个函数要在协议栈开始工作之后才能使用

蓝牙模块名称需要给个不同编号,借用BDADDR的两个字节,显示BLE-xxxxx(x为编号)

GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData ); 想在从机应答蓝牙名称之前获取BDADDR

那能否通过发送HCI命令读取BDADDR呢?

extern hciStatus_t HCI_ReadBDADDRCmd( void );

static void peripheralStateNotificationCB( gaprole_States_t newState )

{
switch ( newState )
{
case GAPROLE_STARTED:
{
uint8 ownAddress[B_ADDR_LEN];
uint8 systemId[DEVINFO_SYSTEM_ID_LEN];

GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);

uint16 BD_serialNo;
BD_serialNo = (uint16)ownAddress[1] * 256 + ownAddress[0];

scanRspData[8] = BD_serialNo / 10000 + 0x30;
scanRspData[9] = (BD_serialNo / 1000 % 10) + 0x30;
scanRspData[10] = (BD_serialNo / 100 % 10) + 0x30;
scanRspData[11] = (BD_serialNo / 10 % 10) + 0x30;
scanRspData[12] = (BD_serialNo % 10) + 0x30;

GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );

在peripheralStateNotificationCB函数里这样可以实现呢

哎,还不清楚怎么用HCI命令,是直接调用HCI_ReadBDADDRCmd( void )?

因为在这里面GAP Role的初始化已经完成了

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

网站地图

Top