打印
[蓝牙芯片]

沁恒主机打开CC2541从机char4通知使能失败

[复制链接]
1856|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

如上图:
代码:
else if ( centralDiscState == BLE_DISC_STATE_CHAR )
  {
    // Characteristic found, store handle
    if ( pMsg->method == ATT_READ_BY_TYPE_RSP &&
         pMsg->msg.readByTypeRsp.numPairs > 0 )
    {
      centralCharHdl = BUILD_UINT16( pMsg->msg.readByTypeRsp.pDataList[0],
                                       pMsg->msg.readByTypeRsp.pDataList[1] );
      centralProcedureInProgress = FALSE;
      
      // Start do read or write
      tmos_start_task( centralTaskId, START_READ_OR_WRITE_EVT, DEFAULT_READ_OR_WRITE_DELAY);
      
      // Display Characteristic 1 handle
      PRINT("Found Characteristic 4 handle : %x \n",centralCharHdl);   
                        // Do a write
<font color="#ff0000">        attWriteReq_t req;
        
        req.cmd = FALSE;
        req.sig = FALSE;
        req.handle = centralCharHdl+1;
        req.len = 2;
                                //centralConnHandle=0;
                                PRINT( "222!\n");
        req.pValue = GATT_bm_alloc(centralConnHandle,ATT_WRITE_REQ,req.len,NULL,0);
        if ( req.pValue != NULL )
        {
          req.pValue[0] = 0x01;
                                        req.pValue[1] = 0x00;
          PRINT( "333!\n");
          if( GATT_WriteCharValue(centralConnHandle,&req,centralTaskId) == SUCCESS )
          {      
            centralProcedureInProgress = TRUE;
                                                PRINT( "Open Notify ok!\n");
            //centralDoWrite = !centralDoWrite;
            tmos_start_task( centralTaskId, START_READ_OR_WRITE_EVT, DEFAULT_READ_OR_WRITE_DELAY);
          }
          else
          {
            GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
                                                PRINT( "Open Notify Fail!\n");
          }</font>
        }  
    }
    centralDiscState = BLE_DISC_STATE_IDLE;
  }   
我用CC2541主机打开CC2541从机的char4通知使能是可以的。
用沁恒就失败。
请问高手,哪里有错?谢谢

使用特权

评论回复
沙发
B1lanche| | 2022-6-13 16:33 | 只看该作者
听您的描述,是不是跟芯片厂家有关系呢?

使用特权

评论回复
板凳
比神乐|  楼主 | 2022-6-13 17:09 | 只看该作者
B1lanche 发表于 2022-6-13 16:33
听您的描述,是不是跟芯片厂家有关系呢?

我感觉应该没关系吧

使用特权

评论回复
地板
Belle1257| | 2022-6-17 10:09 | 只看该作者
你可以看看CC2541主机模式是怎么实现的,然后用沁恒的模拟试试呢?

使用特权

评论回复
5
Allison8859| | 2022-6-19 09:20 | 只看该作者
感觉CC2541本来就有些麻烦,我一般都是用它透传就完事儿了

使用特权

评论回复
6
WCHTECH75| | 2022-6-28 14:48 | 只看该作者
从你的代码中,看的出你那边通过cc2541主机已经知道了client characteristic configuration handle,所以是直接将char4的handle加1,那么最保险的方法最好是直接获取client characteristic configuration handle然后去使能通知,因为我们例程char4的value是不支持读的,所以获取的handle值可能相差是2,所以可以加2试试,也可以直接获取client characteristic configuration handle然后去使能通知。

使用特权

评论回复
7
比神乐|  楼主 | 2022-6-28 17:12 | 只看该作者
WCHTECH75 发表于 2022-6-28 14:48
从你的代码中,看的出你那边通过cc2541主机已经知道了client characteristic configuration handle,所以是 ...

谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

435

主题

3407

帖子

7

粉丝