微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > SimpleBLECentral 例程里的GATT_WriteNoRsp()函数和GATT_WriteCharValue()函数

SimpleBLECentral 例程里的GATT_WriteNoRsp()函数和GATT_WriteCharValue()函数

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

您好:

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

        协议栈的版本是2.1.0

        里面有一函数如下:

/*********************************************************************

 * GATT Write Without Response.

 *

 * Public function defined in gatt.h.

 *

 * @return  SUCCESS or FAILURE

 */

bStatus_t GATT_WriteNoRsp(uint16 connHandle, attWriteReq_t *pReq)

{

  return gattRequest(connHandle, (attMsg_t *)pReq, ICall_getEntityId(),

                     GATT_WRITE_NO_RSP);

}

         因为这个函数是GATT Write Without Response,写,但是不要求对方答复

             我想改成GATT Write With Response,写,要求对方答复,请问如何修改?

 

     2.里面还有一函数如下:

       

/*********************************************************************

 * GATT Write Characteristic Value.

 *

 * Public function defined in gatt.h.

 *

 * @return  SUCCESS or FAILURE

 */

bStatus_t GATT_WriteCharValue(uint16 connHandle, attWriteReq_t *pReq,

                              uint8 taskId)

{

  return gattRequest(connHandle, (attMsg_t *)pReq, taskId, ATT_WRITE_REQ);

}

 

请问GATT_WriteCharValue函数和GATT_WriteNoRsp函数有何区别?

原先用GATT_WriteNoRsp可以实现的,能否用GATT_WriteCharValue函数来替代?

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

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

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

网站地图

Top