OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3398|回复: 19

请问实现串口1接收到的数据再通过串口1发送出去,除了加缓冲区还有其他方案没

[复制链接]

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
发表于 2018-6-7 18:50:36 | 显示全部楼层 |阅读模式
1金钱
请问实现串口1透明转发 就是串口1把串口1接收到的数据再通过串口1发送出去,除了加缓冲区还有其他方案没。我在中断中直接把接收的数据调用usart_sendData()发送出去,快发到1K的时候就死了 就出现ORE置1 过载错误了

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

126

帖子

0

精华

高级会员

Rank: 4

积分
502
金钱
502
注册时间
2016-11-28
在线时间
97 小时
发表于 2018-6-7 18:50:37 | 显示全部楼层
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-6-7 20:02:02 | 显示全部楼层
如果纯转发,不分析处理,那中断接收再直接发送出去好了
一分耕耘一分收获。
回复

使用道具 举报

31

主题

1954

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4511
金钱
4511
注册时间
2018-5-11
在线时间
944 小时
发表于 2018-6-7 20:59:36 | 显示全部楼层
leiyitan 发表于 2018-6-7 20:57
Dma 外设 到 外设

好主意
我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-7 23:26:38 | 显示全部楼层
yklstudent 发表于 2018-6-7 20:02
如果纯转发,不分析处理,那中断接收再直接发送出去好了

这样还真不行 ,串口缓存区很容易出问题,出ORE错误。
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-7 23:27:11 | 显示全部楼层
leiyitan 发表于 2018-6-7 20:57
Dma 外设 到 外设

嗯咯 是好主要 只是我用的是f0 没有DMA
回复

使用道具 举报

0

主题

126

帖子

0

精华

高级会员

Rank: 4

积分
502
金钱
502
注册时间
2016-11-28
在线时间
97 小时
发表于 2018-6-8 01:17:38 | 显示全部楼层
本帖最后由 leiyitan 于 2018-6-8 01:18 编辑
wuboaini23 发表于 2018-6-7 23:27
嗯咯 是好主要 只是我用的是f0 没有DMA

那不是很好做了,做fifo会消耗不少处理器资源…你这个一包数据都是1k,数据转发速度太快太多,缓冲区也要消耗不少内存,处理器就干个这事,没空干其他活了
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-6-8 10:05:46 | 显示全部楼层
wuboaini23 发表于 2018-6-7 23:27
嗯咯 是好主要 只是我用的是f0 没有DMA

F0没有DMA???
一分耕耘一分收获。
回复

使用道具 举报

0

主题

113

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3321
金钱
3321
注册时间
2017-12-14
在线时间
406 小时
发表于 2018-6-8 11:04:15 | 显示全部楼层
晕,直接把tx与rx线连起来就好了,反正你也不用处理这数据
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-8 12:22:01 | 显示全部楼层
feichangkunge 发表于 2018-6-8 11:04
晕,直接把tx与rx线连起来就好了,反正你也不用处理这数据

还有另外一个功能,一定条件下,要发送另外的数据
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-8 12:22:33 | 显示全部楼层
yklstudent 发表于 2018-6-8 10:05
F0没有DMA???

f070F这个没有
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-6-8 14:28:34 | 显示全部楼层

微信图片_20180608142756.png
这不是???
一分耕耘一分收获。
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-8 22:49:00 | 显示全部楼层

忘了 我选的是20角的
回复

使用道具 举报

3

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2018-4-22
在线时间
39 小时
发表于 2018-6-8 23:02:34 | 显示全部楼层
每次只接受一个字节,然后发送一个字节? 还是每次接收一个帧然后发送一个帧??
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-8 23:05:59 | 显示全部楼层
dqlspzl 发表于 2018-6-8 23:02
每次只接受一个字节,然后发送一个字节? 还是每次接收一个帧然后发送一个帧??

我是加了一个内存管理一样,开一片缓存区,加上两个指针 一个记录写 一个记录读 中断中不断写 主函数中不断读
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-8 23:06:42 | 显示全部楼层
wuboaini23 发表于 2018-6-8 23:05
我是加了一个内存管理一样,开一片缓存区,加上两个指针 一个记录写 一个记录读 中断中不断写 主函数中不 ...

最好DMA 加串口闲时中断
回复

使用道具 举报

3

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2018-4-22
在线时间
39 小时
发表于 2018-6-8 23:08:40 | 显示全部楼层
感觉是前面的还没有发送完成你就开始送下一个字节了. 使用 while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET)判断一下? 先判断再发送
回复

使用道具 举报

3

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2018-4-22
在线时间
39 小时
发表于 2018-6-8 23:14:58 | 显示全部楼层
还有就是,直接调用USART1->DR = (Data & (uint16_t)0x01FF); 这样去掉函数调用使用的时间. 如果发送的速率低于接收到的每个字节间的间隔,早晚还是会出现这个字节还没发送完成,下一个字节又需要发送的情况. 所以必须要求发送操作用掉的时间,小于字节间隔的时间.超过就早晚溢出.当然如果包中间有停顿也行.
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-6-9 08:40:20 | 显示全部楼层
wuboaini23 发表于 2018-6-8 22:49
忘了 我选的是20角的

有没有DMA,跟引脚数没关系
一分耕耘一分收获。
回复

使用道具 举报

16

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2018-4-26
在线时间
33 小时
 楼主| 发表于 2018-6-9 11:39:47 | 显示全部楼层
yklstudent 发表于 2018-6-9 08:40
有没有DMA,跟引脚数没关系

对对 我搞错了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-29 08:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表