超出FIFO空间的串口数据收发
大家好,正在做一个项目,通信芯片接收区FIFO大小为8word,数据收发通过调用一个函数完成,每次接收一个字节,通过调试发现,当一包数据大小在13、14个字节以内时,收发正常。现在需要通过串口做大数据量的收发,每包数据都在1000字节以上,因为我觉得FIFO每次取出一个数据后会自动在顶进来一个新数,所以我想通过在while(1)中不断地循环调用数据接收函数,接收到之后先放到一个自建的缓冲区中,等全部接收成功之后再做处理,现在通过调试发现当一包数据大于16个字节时,丢数现象严重,大概只能接收一半左右的数据(具体现象就是每次连续接收7、8个字节,然后会丢掉7、8个字节,接着再接收到7、8个字节,整体下来可能只能接到一半左右),我觉得可能是处理速度跟数据接收速度(baud率)匹配出了问题
大家帮我分析一下什么原因呢,还有该怎么解决