您好:
我现在用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的原因吗?