超出FIFO空间的串口数据收发
大家好,正在做一个项目,通信芯片接收区FIFO大小为8word,数据收发通过调用一个函数完成,每次接收一个字节,通过调试发现,当一包数据大小在13、14个字节以内时,收发正常。现在需要通过串口做大数据量的收发,每包数据都在1000字节以上,因为我觉得FIFO每次取出一个数据后会自动在顶进来一个新数,所以我想通过在while(1)中不断地循环调用数据接收函数,接收到之后先放到一个自建的缓冲区中,等全部接收成功之后再做处理,现在通过调试发现当一包数据大于16个字节时,丢数现象严重,大概只能接收一半左右的数据(具体现象就是每次连续接收7、8个字节,然后会丢掉7、8个字节,接着再接收到7、8个字节,整体下来可能只能接到一半左右),我觉得可能是处理速度跟数据接收速度(baud率)匹配出了问题
大家帮我分析一下什么原因呢,还有该怎么解决
大家帮我分析一下什么原因呢,还有该怎么解决
...全文
相关推荐
STM32进阶之串口环形缓冲区实现 FIFO
STM32进阶之串口环形缓冲区实现 FIFO,代码精简,易实现。
【模块化设计-10】UART1 驱动 + 环形 FIFO 实现高效串口数据收发
本文围绕嵌入式系统中 UART1 串口驱动与环形 FIFO(先进先出)缓冲区的实现展开,核心包含两部分内容: 环形 FIFO 模块:实现了环形缓冲区的基础功能,包括初始化(要求缓冲区大小为 2 的幂次方)、判断缓冲区是否为 2 的幂次方、计算剩余可写入空间、数据写入(ring_fifo_in)、数据读取(含仅读取不弹出的 peek 接口、读取并弹出的 out 接口)、判断缓冲区是否为空等,适用于单生产者单消费者场景,未加锁设计。 UART1 串口驱动模块:基于上述环形 FIFO 实现了 UART1 的驱动开
串口USART收发数据处理方式总结
本文介绍串口USART收发数据处理方式总结的知识,很不错的知识,一起来看下吧。
verilog语言利用FIFO的串口程序收发两端
verilog语言利用FIFO的串口程序收发两端,顶层模块设计,易于移植,收发两端在一个工程里面。
verilog实现含FIFO的RS232串口收发程序源代码
verilog实现含FIFO的RS232串口收发程序 环境quartus 8.1 以上


其他硬件开发

