CC2541读取BDADDR问题
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的初始化已经完成了