请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC2640R2F 工具/软件:
大家好、我有关于 BLE 外设示例的问题。
这是当前默认使用的广播数据。
静态 uint8 advertData[32]=
{
8、//此数据的长度
GAP_ADTYPE_LOCAL_NAME_COMPLETE、
'G'、'F'、'M'、'-'、'4'、'0'、'0'、
};
//扫描响应数据
静态 uint8_t scanRspData[]=
{
0x02、//此数据的长度
GAP_ADTYPE_FLAGS、
GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED
// 25字节信标广播数据
//前导码:公司 ID - 0x000D 对于 TI、请参阅 www.bluetooth.org/.../company-identifiers
//数据类型:信标(0x02)
//数据长度:0x15
// UUID:00000000-0000-0000-000000000000 (空信标)
//主要:1 (0x0001)
//次要:1 (0x0001)
//测量功率:-59 (0xc5)
0x15、//该数据的长度(包括数据类型字节)
GAP_ADTYPE_MANUFACTURER_SPECIFIC、//制造商特定的广播数据类型
0x4c、//公司 ID -固定--> 0x4c (IOS)
0x00、//公司 ID -已修复
0x02、//数据类型-固定
0x15、//数据长度-固定
0x00、// UUID -基于不同用例/应用的变量
0x00、// UUID
0x00、// UUID
0x00、// UUID
0x00、// UUID
0x00、// UUID
0x00、// UUID
0x01、// UUID
0x00、// UUID
0x00、// UUID
0x00、// UUID
0x00、// UUID
0x00、// UUID
0x00、// UUID
0x00、// UUID
0x00、// UUID 24
0x00、// UUID
0x00、// UUID
0x00、// UUID
};
我目前正在询问如何通过 AT 命令一次性将广告数据全部发送到广告数据部分而不使用现有的 scanRspData。
这是当前代码状态。
否则 if (strstr(uartDataBuffer、"AT+CMOD2")!= NULL ){
memset (scanRspData、0、sizeof (scanRspData));
memset (广告数据、0、sizeof (广告数据));
ADvertData[0]= 0x02;
广播数据[1]= GAP_ADTYPE_FLAGS;
ADvertData[2]= GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED;
ADvertData[3]= 0x1A;
广告数据[4]= GAP_ADTYPE_MANUFACTURER_SPECIFIC;
advertData[5]= 0x4c;
ADvertData[6]= 0x00;
ADvertData[7]= 0x02;
ADvertData[8]= 0x15;
ADvertData[9]= 0x00;
ADvertData[10]= 0x08;
ADvertData[11]= 0x00;
ADvertData[12]= 0x00;
ADvertData[13]= 0x00;
ADvertData[14]= 0x00;
ADvertData[15]= 0x00;
ADvertData[16]= 0x00;
ADvertData[17]= 0x20;
ADvertData[18]= 0x00;
ADvertData[19]= 0x00;
ADvertData[20]= 0x30;
ADvertData[21]= 0x14;
ADvertData[22]= 0x09;
AdvertData[23]= 0x38;
ADvertData[24]= 0x00;
ADvertData[25]= 0x00;
ADvertData[26]= 0x48;
ADvertData[27]= 0x00;
ADvertData[28]= 0x40;
ADvertData[29]= 0x00;
ADvertData[30]= 0x00;
uint8_t advertDataLen = 31;
// GapAdv_disable (advHandleLegacy);
GapAdv_loadByHandle (advHandleLegacy、GAP_ADV_DATA_TYPE_ADV、ADvertDataLen、ADvertData);
//GapAdv_loadByHandle (advHandleLegacy、GAP_ADV_DATA_TYPE_SCAN_RSP、0、NULL);
GapAdv_enable (advHandleLegacy、GAP_ADV_ENABLE_OPTIONS、USE_MAX、0);
BLE_MODE_STATE = 2;
UART_printf ("OC\r\n");
advEnableFlag = 0;
uartCloseFlag = 1;
Util_startClock (&evtAdvEnClock);
}
执行代码时、我确认数据已输入到捕获中所示的数组中。
但是、使用 nrfconnect 应用程序检查数据时、仅确认最高0x020104的数据、而未确认其余数据。 有解决方案吗?
