CC3200 uart接收数据不完整问题请教
Ti工程师,好
我利用下面代码来接收uart的数据:
int uartRecvMsg(char *buffer, unsigned short len) {
int i = 0, j = 0;
char c;
while (1) {
if (MAP_UARTCharsAvail(CONSOLE) == true) {
c = MAP_UARTCharGetNonBlocking(CONSOLE);
buffer[i] = c;
i++;
len--;
if (len == 0) {
break;
}
} else {
/ * 如果在后续10ms内没数据的话,return */
if (j < 2) {
MAP_UtilsDelay(40000);
j++;
}
if (buffer[0] != '\0' && j == 2) {
j = 0;
break;
}
}
}
return i;
}
目的就是:如果能够接收满给定长度的字符(1024byte),就退出,否则如果10ms没有字符,也退出;
问题:
当uart每次输入3~5个字符的时候,很正常; 但是当我每次发送30个字节的时候,会出现接收 乱序,字符丢失 现象。。
请帮忙指点下。
谢谢
问题原因知道,是cc3200的FIFO只有16个字节, 有解决办法吗 ?
FIFO 16个字节也不是太大的问题,在低速率上能够接收完成,高速率接收不了,感觉就像处理器处理不了