蓝牙一对二传输断开问题
时间:10-02
整理:3721RD
点击:
蓝牙主节点连上两个从节点,其中一个从节点向主节点传输数据,然后主节点把数据通过串口传给arm,arm处理后再传回主节点,主节点再发给另外一个从节点,但是在最后这个过程中传几个数据后蓝牙就会自动断开,请问是什么原因呢?
static void simpleBLEPeripheral_HandleSerial(mtOSALSerialData_t *cmdMsg)
{
uint8 i,len,*str=NULL; //len有用数据长度
uint8 CMD;
str=cmdMsg->msg; //指向数据开头
len=*str; //msg里的第1个字节代表后面的数据长度
if ( ( simpleBLEState == BLE_STATE_CONNECTED ) && ( simpleBLECharHd6 != 0 ) ) //写char6
{
uint8 ValueBuf[SIMPLEPROFILE_CHAR6_LEN];
for(i=0;i<len;i++)
ValueBuf[i] = str[i+1];
attWriteReq_t req;
req.handle = 0x0035;
req.len = SIMPLEPROFILE_CHAR6_LEN;
//req.offset = 0;
req.sig = 0;
req.cmd = 0;
osal_memcpy(req.value,ValueBuf,SIMPLEPROFILE_CHAR6_LEN);
GATT_WriteCharValue( ShangweiConnectHandle, &req, simpleBLETaskId );
}
chi zhang5,
你用的是2640吗?如果是2640,最好交给task去处理数据发送。
另外,要确保connection handle和attribute handle的正确性。
