if ( (numBytes = Hal_UART_RxBufLen(port)) > 0 ){
//读取全部有效的数据,这里可以一个一个读取,以解析特定的命令
req.handle = 0x4C;
req.sig = 0;
req.cmd = 1;
HalUARTRead (port, req.value, numBytes); if(numBytes<20)
{
HalUARTRead (port, req.value, numBytes); req.len = numBytes+1;
}
else
{
HalUARTRead (port, req.value, 20); req.len = 20+1;
}
//GATT_WriteNoRsp(simpleBLEConnHandle, &req); // GATT_WriteCharValue( 0, &req, sendMsgTo_TaskID ); GATT_WriteNoRsp( 0, &req ); }
以上代码是为了实现一个无线串口的功能实际中发现,当用串口连续发超过两个的字符串超过两次就有可能导致无限循环发送,不知道是什么原因?
wei xu1:
刚发现是自己多读取了一次串口数据,导致串口反复出现数据。