CC2541 Central 端,怎样使用GATT_WriteCharValue给peripheral发数据。
现在刚开始学习BLE的透传通信,在从机端利用
void sbpSerialAppSendNoti(uint8 *pBuffer,uint16 length)
{
uint8 len;
if(length > 20)
len = 20;
else
len = length;
static attHandleValueNoti_t pReport;
pReport.handle=0x002E;
pReport.len = len;
osal_memcpy(pReport.value, pBuffer, len);
GATT_Notification( 0, &pReport, FALSE );
}
实现了向主机发送数据,并且接收到了;但是,主机向从机怎么实现向从机数据传输:利用 GATT_WriteCharValue( simpleBLEConnHandle, &bac, simpleBLETaskId );。
本来的想法是,让主机接收到数据后,将数据11回传给从机,可是没成功,如下:
if(pMsg->method == ATT_HANDLE_VALUE_NOTI)
{
if(pMsg->msg.handleValueNoti.handle == 0x002E)
{
uint8 str[17];
osal_memcpy(str, pMsg->msg.handleValueNoti.value,17);
attWriteReq_t bac;
bac.handle = simpleBLECharHdl;
bac.len = 1;
bac.value[0] =11 ;
bac.sig = 0;
bac.cmd = 0;
GATT_WriteCharValue( simpleBLEConnHandle, &bac, simpleBLETaskId );
}
}
不清楚,GATT_WriteCharValue该如何使用,各位牛人,给指点一下。
Maxweller,
看代码貌似木有问题。
你再仔细看看参数配置对不对?比如charHdl之类?