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

我想实现串口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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版