OpenEdv-开源电子网

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

[ALTERA] fpga同一个串口发送和接收能用两个波特率模块吗?

[复制链接]

70

主题

275

帖子

0

精华

高级会员

Rank: 4

积分
732
金钱
732
注册时间
2017-6-20
在线时间
186 小时
发表于 2021-11-10 17:28:09 | 显示全部楼层 |阅读模式
50金钱
请教群里各位大佬,同一个串口发送和接收能用两个波特率模块吗?串口接收的时候,波特率模块1是采用的中间采样的方式,接收到相关指令后,控制50%占空比的波特率发生模块2输出时钟来发送,这样会有什么影响吗?都是115200的。

最佳答案

查看完整内容[请看2#楼]

当然没问题啊,虽然我不太了解。 自己写串口也不难,按照串口时序来整就对了,一个串口也可以实现收与发使用不同的波特率。 如果有标准的串口库,假如一个串口不能满足要求,那就用两个,然后对外宣称“我用的是同一个串口”,别人咋知道你用了几个串口,外围看到的只是引脚。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

3229

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8074
金钱
8074
注册时间
2020-5-11
在线时间
3574 小时
发表于 2021-11-10 17:28:10 | 显示全部楼层
天天mdk 发表于 2021-11-11 10:22
现在是要求一个串口实现接收到开始指令后进行循环发送,接收到停止指令后停止发送。

当然没问题啊,虽然我不太了解。
自己写串口也不难,按照串口时序来整就对了,一个串口也可以实现收与发使用不同的波特率。
如果有标准的串口库,假如一个串口不能满足要求,那就用两个,然后对外宣称“我用的是同一个串口”,别人咋知道你用了几个串口,外围看到的只是引脚。
专治疑难杂症
回复

使用道具 举报

0

主题

465

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1729
金钱
1729
注册时间
2021-4-11
在线时间
319 小时
发表于 2021-11-10 17:32:25 | 显示全部楼层
帮顶      
回复

使用道具 举报

4

主题

870

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4102
金钱
4102
注册时间
2019-9-4
在线时间
866 小时
发表于 2021-11-10 17:58:12 | 显示全部楼层
不懂,帮顶
回复

使用道具 举报

70

主题

275

帖子

0

精华

高级会员

Rank: 4

积分
732
金钱
732
注册时间
2017-6-20
在线时间
186 小时
 楼主| 发表于 2021-11-11 08:48:35 | 显示全部楼层
没有知道的吗?
回复

使用道具 举报

10

主题

3229

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8074
金钱
8074
注册时间
2020-5-11
在线时间
3574 小时
发表于 2021-11-11 09:06:39 | 显示全部楼层
没太懂楼主的意思,也不太懂楼主为啥要这样干。
你测下发送脚的波形,看波特率是否正确,再考虑一下任意时刻接收脚有数据时是否对发送脚的波特率有影响。
FPGA很灵活,你可以搞N个独立的全双工串口模块,比如用串口1的接收,用串口2的发送,来实现不同的收发波特率。
专治疑难杂症
回复

使用道具 举报

70

主题

275

帖子

0

精华

高级会员

Rank: 4

积分
732
金钱
732
注册时间
2017-6-20
在线时间
186 小时
 楼主| 发表于 2021-11-11 10:22:09 | 显示全部楼层
LcwSwust 发表于 2021-11-11 09:06
没太懂楼主的意思,也不太懂楼主为啥要这样干。
你测下发送脚的波形,看波特率是否正确,再考虑一下任意时 ...

现在是要求一个串口实现接收到开始指令后进行循环发送,接收到停止指令后停止发送。
回复

使用道具 举报

70

主题

275

帖子

0

精华

高级会员

Rank: 4

积分
732
金钱
732
注册时间
2017-6-20
在线时间
186 小时
 楼主| 发表于 2021-11-11 11:28:43 | 显示全部楼层
LcwSwust 发表于 2021-11-11 10:35
当然没问题啊,虽然我不太了解。
自己写串口也不难,按照串口时序来整就对了,一个串口也可以实现收与发 ...

嗯 谢谢
回复

使用道具 举报

11

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2016-3-29
在线时间
23 小时
发表于 2021-11-12 14:46:05 来自手机 | 显示全部楼层
天天mdk 发表于 2021-11-11 10:22
现在是要求一个串口实现接收到开始指令后进行循环发送,接收到停止指令后停止发送。

你实现这个功能也没必要吧接收。发送的波特率改成不一样的啊!没想通你为什么要这样做。
回复

使用道具 举报

70

主题

275

帖子

0

精华

高级会员

Rank: 4

积分
732
金钱
732
注册时间
2017-6-20
在线时间
186 小时
 楼主| 发表于 2021-11-15 13:10:17 | 显示全部楼层
流逝aa 发表于 2021-11-12 14:46
你实现这个功能也没必要吧接收。发送的波特率改成不一样的啊!没想通你为什么要这样做。

因为接收完一个字节后(比如接收到0xff),接收采样的波特率模块就停止工作了,直到接收到下一个起始信号,波特率模块才重新工作。而发送端是接收到0xff后,便开始不断地进行发送,这个需要再搞一个用于发送的波特率模块了。
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-7-7
在线时间
2 小时
发表于 2021-11-17 09:41:45 | 显示全部楼层
可以的,但是要注意两个模块不能同时进行数据传输,要有先后顺序。然后传输的数据最好加个指令头用于身份识别,例如模块1数据加命令头aa,模块2加命令头bb这样当终端接收到数据aaxxxx就知道此时是模块1给我的数据,然后你想控制模块2就发回数据bbxxxx,这样模块1会丢弃你这个指令,模块2会响应,然后模块2给你发送数据。
回复

使用道具 举报

70

主题

275

帖子

0

精华

高级会员

Rank: 4

积分
732
金钱
732
注册时间
2017-6-20
在线时间
186 小时
 楼主| 发表于 2021-11-17 10:27:50 | 显示全部楼层
xz12345 发表于 2021-11-17 09:41
可以的,但是要注意两个模块不能同时进行数据传输,要有先后顺序。然后传输的数据最好加个指令头用于身份识 ...

为啥不能同时啊?这个串口不是全双工的吗?我是想串口接收到0xff后,串口就开始不停的往外发送。这个时候串口等待接收,如果接收到0xf1,串口发送停止。这样应该可以吧?
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2021-11-30 10:02:37 | 显示全部楼层
天天mdk 发表于 2021-11-17 10:27
为啥不能同时啊?这个串口不是全双工的吗?我是想串口接收到0xff后,串口就开始不停的往外发送。这个时候 ...

可以的
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-10-3 22:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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