[STM32F1] 关于串口收发缓存处理的问题

[复制链接]
1761|7
 楼主| hbchf 发表于 2017-3-3 15:54 | 显示全部楼层 |阅读模式
Uart0以115200的波特率接收数据,uart1同样以115200的波特率转发uart0接收到的数据,请问有什么好的办法?
现在现象是uart0能够接收全数据,但是uart1发送来不及。
重点是uart1发包间隔要在20ms内。
大笨象会跳舞 发表于 2017-3-3 16:10 | 显示全部楼层
可以试下DMA的方式,但串口的通讯速率有限,不知道你20ms内想传完多少的数据
xmshao 发表于 2017-3-3 16:28 | 显示全部楼层
除了考虑DMA外,或者搞个双缓冲,交叉用。
uptown 发表于 2017-3-3 17:08 | 显示全部楼层
使用串口中断存储接收,然后发送。
uptown 发表于 2017-3-3 17:10 | 显示全部楼层
如果数据太大,可以使用fifo存储。
lxyppc 发表于 2017-3-3 20:24 来自手机 | 显示全部楼层
缓存一下就行了
 楼主| hbchf 发表于 2017-3-14 21:54 | 显示全部楼层
考虑再三,觉得这样做风险很大。最后还是放弃了这种方案。
zen2017 发表于 2017-3-16 10:09 | 显示全部楼层
本帖最后由 zen2017 于 2017-3-16 10:16 编辑

115200的速度并不快,中断处理接收和发送,数据收到FIFO缓冲区,再发送端自动从FIFO缓冲区取出发送。

最近做一个数据采集通过USB的虚拟串口转发的,采集频率是400K/s,处理后数据为10字节,通过虚拟串口发送。设置好FIFO缓冲区后,使用STM32F103表示没有压力。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

88

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部