cc2540 协议栈版本:BLE-CC254x-1.3.2
这里有两个问题:
1:用cc2540 Central,搜索到51822 Peripheral 并建立连接,
但是协议栈没有进入simpleBLECentralEventCB( );下面的GAP_LINK_PARAM_UPDATE_EVENT: 事件;
用cc2540 Central,连接cc2541 Peripheral 时,能触发GAP_LINK_PARAM_UPDATE_EVENT: 事件;
程序就是在GAP_LINK_PARAM_UPDATE_EVENT: 里面使能Peripheral 的No
tify
问题1:触发GAP_LINK_PARAM_UPDATE_EVENT: 事件,是TI BLE协议栈才有的,还是蓝牙标准要求的,任意一款BLE Peripheral都能触发?
2:用cc2540 Central,搜索到51822 Peripheral 并建立连接,可以通过UUID:0xFFF6进行读写操作,但是无法使能Notify
51822 Peripheral 的UUID、handle:0x000B,使能Notice用的 handle:0x000C确认无误!
重点:我用BTool,往0x000C写入0x0001可以使能51822 Peripheral 的Notice。
用IOS蓝牙软件 LightBlue 也可以使能51822 Peripheral 的Notice。
但是用cc2540 Central的工程写无法使能
代码如下:
attWriteReq_t AttReq;
uint8 ValueBuf[2];
AttReq.handle = (simpleBLECharHd6+1);//0x0036
AttReq.len = 2;
AttReq.sig = 0;
AttReq.cmd = 0;
AttReq.value[0]=LO_UINT16(GATT_CLIENT_CFG_NOTIFY); //0x0001为开notify
AttReq.value[1]=HI_UINT16(GATT_CLIENT_CFG_NOTIFY);
// ValueBuf[0] = 0x01;
// ValueBuf[1] = 0x00;
// osal_memcpy(AttReq.value,ValueBuf,1);
GATT_WriteCharValue( 0, &AttReq, simpleBLETaskId );
问题2:我改怎么实现在cc2540 Central 上使能51822 Peripheral 的Notice。
附上几张图协助分析:
图1:51822 Peripheral的服务
图2:cc2541Peripheral的服务