蓝牙一对二传输断开问题
时间: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的正确性。