微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > 使用CC3200实现UART接收Wi-Fi转发的一点疑问

使用CC3200实现UART接收Wi-Fi转发的一点疑问

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

想用3200转发串口读取的数据,协议用的是UDP,我的想法是,读满PACKAGE个字节之后调用sl_SendTo发送一次,但是在实际测试中会有丢包的情况发生(速度只有100kb/s),为了排除UDP导致的丢包,我让3200自己产生递增数然后通过udp发走(速度保持在100k/s),测试没有丢包现象,所以我想是不是因为在运行sl_SendTo的时候错过了串口发来的数据导致丢包,如果是这个原因,我应该如何做才能保证不丢包?

 while(1)
    {
    	for(i = 0;i < PACKAGE; i++ )
		  {g_cBsdBuf[i] = (char)UARTCharGet(UARTA0_BASE);
		  }
		if( i == PACKAGE)
		  {
		   iStatus1 = sl_SendTo(iSockID, g_cBsdBuf, PACKAGE, 0,(SlSockAddr_t *)&sAddr, iAddrSize);
		  }
    }

UART读数据有没有丢数据的现象发生?

读数没有问题

读满PACKAGE个字节之后调用sl_SendTo发送一次?

这种机制本来就是丢包的机制,你打断点和自己调试肯定不丢包,因为,慢啊!

换个机制吧。

老师你好,能否给个思路?

如果串口有协议,就按照数据帧走发送;如果没有协议,就按照定时器走

我只能说到这儿了

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

网站地图

Top