TI论坛
直播中

姬房有

7年用户 336经验值
私信 关注
[问答]

为什么TI cc2540 Central连接nRF51822 Peripheral无法使能Notify?

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 的Notify
问题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的服务

回帖(4)

汪佳丽

2019-10-15 10:06:30
你好,
1,.32的协议栈太老了吧,申请到1.4上面去吧。
                                                                         Michael Qian
举报

李子月

2019-10-15 10:24:20
关注!BTool功能比cc2540Central强大!楼主确定cc2540Central和cc2541 Peripheral的Notify正常通信?
                                                                         
提供德州仪器蓝牙和射频cc2540,cc2541,cc26系列,cc13系列脱机烧录工具。



 
举报

姬房有

2019-10-15 10:31:50
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

温洁

2019-10-15 10:43:07
调试成功了吗?cc2541当主机和51822当从机,它们可以互相通讯吗?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分