TI中文支持网
TI专业的中文技术问题搜集分享网站

Notify发送数据的问题

else if ( simpleBLEState == BLE_STATE_CONNECTED &&
GUA_CHAR1_Hdl != 0 )
{
//香瓜
uint8 status;
// Do a read or write as long as no other read or write is in progress
if ( simpleBLEDoWrite )
{
// Do a write
attWriteReq_t req;
req.handle = GUA_CHAR1_Hdl; //simpleBLECharHdl;
req.len = 1;
req.value[0] = simpleBLECharVal;
req.sig = 0;
req.cmd = 0;
status = GATT_WriteCharValue( simpleBLEConnHandle, &req, simpleBLETaskId );
NPI_PrintString("Write OK!");
}
// else
// {
// // Do a read
// attReadReq_t req;
//// req.handle = simpleBLECharHdl;
// status = GATT_ReadCharValue( simpleBLEConnHandle, &req, simpleBLETaskId );
// }
if ( status == SUCCESS )
{
//simpleBLEProcedureInProgress = TRUE;
simpleBLEDoWrite = simpleBLEDoWrite;
}
//香瓜 }

我主机CC2541开发板用Notify方式发送数据给蓝牙模块(从机),

代码如上。可是只有第一次管用。

就是蓝牙模块收到数据,指示灯取反,第一次发送取反。第二次第三次则不反应。

判断应该是蓝牙模块没有收到。

因为用手机发送给蓝牙模块,每次指示灯都取反。

大神看看,哪里有问题?谢谢!

ccb bcc:

//开启notify的CCC attWriteReq_t req; req.handle = GUA_CHAR1_CCC_Hdl; //char1的CCC的特征值句柄,这里写死0x1C,可通过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 ); NPI_PrintString("Notify OK!");

我以为是没有开启notify CCC,加上以上代码,谁知指示灯一次也不取反。

去掉这段,就取反一次。

ccb bcc:

回复 YiKai Chen:

发现问题了。

第一次发的是0x43,第二次发的是0x44,以此类推。

为什么会这样呢?我每次都赋值了。谢谢!

YiKai Chen:

回复 ccb bcc:

調試一下你的源碼盤查囉

ccb bcc:

回复 YiKai Chen:

搞好啦,把0x43写死就OK啦。

赞(0)
未经允许不得转载:TI中文支持网 » Notify发送数据的问题
分享到: 更多 (0)