想用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);
}
}