微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于使能Notify的问题

关于使能Notify的问题

时间:10-02 整理:3721RD 点击:

您好:

         我现在用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()函数代替?

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

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top