微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于CC2540 协议栈1.4.2的版本

关于CC2540 协议栈1.4.2的版本

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

大家好,问两个问题,希望有时间的朋友们帮忙回答一下

1.调用GATT_WriteCharValue去使能从机的notify滞后于,从机一定有indication的应答吗?

2.这个版本的协议栈发送 Write no response命令应该怎么发?我写的代码如下,但是抓包抓不到任何东西,

好像没发出来,但是返回值是SUCCESS

bStatus_t snm_sampling_enable(void)
{
  attWriteReq_t req;
  bStatus_t res = FAILURE;
  BLE_DEV *p =  &(gDev[0]);
  
  req.pValue = GATT_bm_alloc( p->ble_dev_conn_handle, ATT_WRITE_REQ, 1, NULL );
  if( req.pValue != NULL )
  {
    req.handle = SNM_CUSTOM3_CMD_HANDLE;
    req.len = sizeof(sampling_enable);
    req.pValue = (uint8*)&sampling_enable[0];
    req.cmd = 1;
    req.sig = 0;
    uint8 i;
    printf("sampling on-command");
    for(i=0;i<3;i++)
    {
      printf("%X ",*(req.pValue+i));
    }
    printf("\r\n");
    res = GATT_WriteNoRsp(p->ble_dev_conn_handle,&req);
    if(res != SUCCESS)
    {
       GATT_bm_free( (gattMsg_t *)&req, ATT_WRITE_REQ );
    }
  }else
  {
    res = bleMemAllocError;
  }
  return res;
}

3.上述代码中的

GATT_bm_alloc( p->ble_dev_conn_handle, ATT_WRITE_REQ, 1, NULL );
第三个参数根据什么设置?开启notify之后,再发送上述命令,会有20个字节的传感器数据发送过来,
这个时候这个NULL 是不是要改为20?


问题1我自己试过,从机一定会有write response。

问题2 我没有用你的代码,用我的代码试的总是发送失败,返回0x02, INVALIDPARAMETER,不清楚具体是哪个parameter有问题。

问题3 第三个参数是主机发送的数据的长度,想发送一个Byte就是1,想发送20个Byte就是20,跟从机发送回来的数据长度无关,最大也就是20。 NULL是第四个参数,没用过。

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

网站地图

Top