你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

我想实现串口1和串口2数据转发功能,有没有相关的方案或...

[复制链接]
ssssss 提问时间:2018-8-13 08:27 /
本帖最后由 wwwheihei 于 2018-8-13 10:01 编辑

我想实现串口1和串口2数据转发功能,有没有相关的方案或者帖子?具体说的话就是:串口1收到数据直接从串口2发出,串口2接收到数据直接从串口1发出,中间不能有延时,必须保证实时性。
(实际中应用是想用串口1控制串口2上的模块)

收藏 评论22 发布时间:2018-8-13 08:27

举报

22个回答
x5y4z3 回答时间:2018-8-14 11:49:07
楼主的需求蛮特别的,早期有搞过类似的状况,因两个串口 Baud Rate 不同才进行转发处理。
但若同用固定且相同的 Baud Rate。除了飞线,经过 MCU 都会有延时发生,在 FPGA 内也会!
就算是提高了其采样速率而延时也只会变短,不过估计仍是达不到 Zero Delay 的。
有时...那条 UART 的线长短也关乎到延时,长短个几厘米也都会有几个 ps 物理上延时的发生!~
在此提供楼主个方向,考虑使用量子通讯来传送资料,理论上量子传送资料的速度将光速甩过几条大街去了都!...

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

x5y4z3 回答时间:2018-8-15 09:42:14
wwwheihei 发表于 2018-8-14 13:42
延时一秒以内都可以接受

那您的需求就简单多了,只要将 MCU 的 A 串口 RXD 接收中断内 FIFO 资料往 B 串口的 TXD 扔,反之...
将 B 串口 RXD 发生的接收中断内 FIFO 资料往 A 串口的 TXD 丢即可,估计很少的 Coding 就行了!

还有...上述的这方式运作,依您的需求所使用串口其 Baud Rate 得要高于 960 才能于一秒内实现的。
stm2i 回答时间:2018-8-13 09:00:49
您这不就是一根RS-232的连接线吗,一头入一头出。

估计您有没说清楚的地方,比如要求输入是:9600bps 而出呢,是:5600bps 这样就需要有转换电路来实现。

只要有波特率的转换电路延时是不可避免的了,只有时间长短而言。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

x5y4z3 回答时间:2018-8-13 08:55:51
中间不能有延时??
估计只有飞线了!~

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

wudianjun2001 回答时间:2018-8-13 08:57:46
怎么可能没有延时,这样转发有啥意义

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

freeelectron 回答时间:2018-8-13 08:58:49
1、肯定会有延时,延时是一个相对的概念,看你能接收的范围是什么样子了,比如100ms、1s等等
2、两个串口都配置为终端接收,一帧数据接收完成后,从另一个串口发出去,就行了

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

moviexm 回答时间:2018-8-13 09:13:15
多了就习惯了
奏奏奏 回答时间:2018-8-13 09:13:40
这个用法就是串口中继器,
在串口1的中断回调函数中用带IT的发送函数发到串口2,
同理,在串口2的中断回调函数中用带IT的发送函数发到串口1
我这里说的是HAL库
标准库的可以更直接一点直接在中断函数中写

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

jyl_518 回答时间:2018-8-13 09:26:49
用一个串口不行吗

评分

参与人数 1蝴蝶豆 +1 收起 理由
zero99 + 1

查看全部评分

ssssss 回答时间:2018-8-13 10:02:14
wudianjun2001 发表于 2018-8-13 08:57
怎么可能没有延时,这样转发有啥意义

实际中应用是想用串口1控制串口2上的模块
ssssss 回答时间:2018-8-13 10:03:00

看我的帖子说明
ssssss 回答时间:2018-8-13 10:04:44
freeelectron 发表于 2018-8-13 08:58
1、肯定会有延时,延时是一个相对的概念,看你能接收的范围是什么样子了,比如100ms、1s等等
2、两个串口都 ...

实际中应用是想用串口1控制串口2上的模块
radio2radio 回答时间:2018-8-13 15:06:43

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

STM1024 回答时间:2018-8-13 15:37:52
想不出有这样的应用场景。

不允许有延时,何必要转发?直接硬线过去不行么?

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

ssssss 回答时间:2018-8-13 17:15:20
stm1024 发表于 2018-8-13 15:37
想不出有这样的应用场景。

不允许有延时,何必要转发?直接硬线过去不行么? ...

外部接口串口1 控制串口2的模块
ssssss 回答时间:2018-8-13 17:23:39
radio2radio 发表于 2018-8-13 15:06
试一试我的,高速喔,
https://www.stmcu.org.cn/module/forum/thread-616613-1-1.html

当你把数据送到dr寄存器后,你没判断发送完成寄存器啊?会不会覆盖数据呢?
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版