打印
[STM32F1]

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

[复制链接]
1502|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 | 只看该作者
使用串口中断存储接收,然后发送。

使用特权

评论回复
5
uptown| | 2017-3-3 17:10 | 只看该作者
如果数据太大,可以使用fifo存储。

使用特权

评论回复
6
lxyppc| | 2017-3-3 20:24 | 只看该作者
缓存一下就行了

使用特权

评论回复
7
hbchf|  楼主 | 2017-3-14 21:54 | 只看该作者
考虑再三,觉得这样做风险很大。最后还是放弃了这种方案。

使用特权

评论回复
8
zen2017| | 2017-3-16 10:09 | 只看该作者
本帖最后由 zen2017 于 2017-3-16 10:16 编辑

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

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

88

帖子

0

粉丝