微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 关于CC2640 SimpleBLEMulti例程作为主时,连接丛机通讯问题

关于CC2640 SimpleBLEMulti例程作为主时,连接丛机通讯问题

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

首先我是利用SimpleBLEMulti例程作为主机,去扫面发现丛机且连接丛机,可以发现丛机的服务句柄,

但是在与丛机通讯时,读写操作返回值均成功,可是读回来的数据始终为0x10,而写数据时则是错误“Write Error”,

请问下有谁在这个例程上面通讯正常的,谢谢!

haibin,

write error是不是你的写属性没有设置正确?

读数据返回0x10,是不是你的属性长度只有一个字节?

请问下,主机写数据到丛机,用的什么API,

我现在操作如下:

uint8 status;
uint8 len;
len = length;
attWriteReq_t req;
req.handle = charHdl_1+0x2;
req.len = len;
req.sig = 0;//必须要填
req.cmd = 0;//必须要填
req.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, len, NULL);
memcpy(req.pValue,pBuffer,len);
status = GATT_WriteCharValue( connHandle, &req, selfEntity );
if(status!=SUCCESS)
GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
return status;

但是pMsg->msg.errorRsp.errCode==13,

谢谢!

Hi  Yan

 我现在使用主从一体的例程,我想实现主机跟丛机之间的数据交互,该例程连接一个丛机,丛机的通知可以正常发送正常,但是我该例程写数据到丛机时,一写就断开,使用如下代码:

uint8 status;
uint8 len;
len = length;
attWriteReq_t req;
req.handle = charHdl_2+0x1;//charHdl_2+0x1 simpleProfileAttrTbl[6].handle
req.len = len;
req.sig = 0;//必须要填
req.cmd = 0;//必须要填
req.pValue = GATT_bm_alloc(connHandle, ATT_WRITE_REQ, len, NULL);
memcpy(req.pValue,pBuffer,len);
status = GATT_WriteCharValue( connHandle, &req, selfEntity );
if(status!=SUCCESS)
GATT_bm_free((gattMsg_t *)&req, ATT_WRITE_REQ);
else
write_uart("5\r\n",3);
return status;

我用手机做为主机连接这个丛机是没有问题的,所以问题还是出在这个主从一体的例程里面,请问是我哪里做错了吗,谢谢!

补充一下,我执行写操作的时候,蓝牙就断开了,我从一个朋友哪里听说,写操作要在下面代码中执行(用的例程是单主机例程,不是主从一体的例程)

if (!Queue_empty(appMsgQueue))
{
        sbmEvt_t *pMsg = (sbmEvt_t *)Util_dequeueMsg(appMsgQueue);
        if (pMsg)
        {
                // Process message.
                SimpleBLEMulti_processAppMsg(pMsg);

                 // Free the space from the message.
                ICall_free(pMsg);
          }
}

我按照他说的方法还是失败了,会断开,请问下这个问题是不是跟该例程不能操作FLASH一样,谢谢!

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

网站地图

Top