微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3200 uart接收数据不完整问题请教

CC3200 uart接收数据不完整问题请教

时间:10-02 整理:3721RD 点击:

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个字节也不是太大的问题,在低速率上能够接收完成,高速率接收不了,感觉就像处理器处理不了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top