TI中文支持网
TI专业的中文技术问题搜集分享网站

关于使能Notify的问题

您好:

         我现在用cc2640做主机,程序是在TI的SDK里的主机例程里修改的

         我的使能Notify的代码如下:

          attWriteReq_t writeReq;
  uint16 connHandle = connectionHandle;  // this will always be 0 if device only ever has one connection at a time

  writeReq.handle = handleOfCCCD; // if you know the value, you can put it in as a fixed value;
                                  // otherwise you will need to first discover the value
  writeReq.len = 2;
  writeReq.value[0] = LO_UINT16(GATT_CLIENT_CFG_NOTIFY);
  writeReq.value[1] = HI_UINT16(GATT_CLIENT_CFG_NOTIFY);
  writeReq.sig = 0;
  writeReq.cmd = 1;
 
  GATT_WriteNoRsp( connHandle, &writeReq, taskId );

 请问必须用GATT_WriteNoRsp()函数吗?

GATT_WriteNoRsp()能否用GATT_WriteCharValue()函数代替???

Susan Yang:

用GATT_WriteCharValue() 操作一个特征值,必须等到ATT层的write response之后才能对它进行下一步操作,没收到response之前,不能进行第二次操作。所以在进行第二次写入之前,必须先等待收到第一次response

而GATT_WriteNoRsp()是不需要peripheral 回复 response的写请求。

bear cheng:

回复 Susan Yang:

我现在把GATT_WriteNoRsp()换成了
GATT_WriteCharValue函数,但是返回的不是SUCCESS
而是INVALIDPARAMETER我现在只是调用了GATT_WriteCharValue()一次
没有进行第二次操作,但是返回的还是INVALIDPARAMETER
是因为peripheral没有回复response的原因吗?

赞(0)
未经允许不得转载:TI中文支持网 » 关于使能Notify的问题
分享到: 更多 (0)