关于CC2640 SimpleBLEMulti例程作为主时,连接丛机通讯问题
首先我是利用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一样,谢谢!