微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > cc2640主从使用自定义notify型的char6特征值通信问题,

cc2640主从使用自定义notify型的char6特征值通信问题,

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

我现在从机增加20字节大小的notify型的char6特征值,用于与主机通信,但是现在主机无法获取char6的句柄值(主机是能获取其他特征值的句柄的),而且如果使用手机app接收从机char6 notify的数据,是能接收到的。所以现在不不知道是从机还是主机出现的问题,换了几个板子都是一样的情况!TI开发人员知道是哪儿的问题的吗?希望解答一下谢谢

 (这是主机获取句柄值的修改部分,只需要修改SIMPLEPROFILE_CHAR6_UUID应该就能获取char6的句柄的)

Hi,yongjing

我在下面举一个例子:

#define GATT_CLIENT_CFG_NOTIFY                  0x0001 //打开notify开关的数值  
#define GATT_CLIENT_CFG_INDICATE                0x0002 //打开indicate开关的数值  
  
#define SIMPLEPORFILE_CHAR4_Hdl                           0x2E //char4的句柄   
#define SIMPLEPORFILE_CCC_Hdl                       0x2F //char4的CCC的句柄
开启notification
 attWriteReq_t req;  
          
 req.handle = GUA_CHAR4_CCC_Hdl;                   //char4的CCC的特征值句柄,这里写死0x2F,可通过btool获取到  
 req.len = 2;  
 req.value[0] = LO_UINT16(GATT_CLIENT_CFG_NOTIFY); //0x0001为开notify  
 req.value[1] = HI_UINT16(GATT_CLIENT_CFG_NOTIFY);          
 req.sig = 0;  
 req.cmd = 0;  
  GATT_WriteCharValue( 0, &req, simpleBLETaskId );    

接收部分

SimpleBLECentral.c的simpleBLECentralProcessGATTMsg中

else if ( ( pMsg->method == ATT_HANDLE_VALUE_NOTI ) )   //通知  
{  
  if( pMsg->msg.handleValueNoti.handle == GUA_CHAR4_Hdl)     //CHAR6的通知  串口打印  
  {  
      char str[32] = {0};  
      osal_memcpy(str, pMsg->msg.handleValueNoti.value, pMsg->msg.handleValueNoti.len );  
  }  
}  
 
 

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

网站地图

Top