OpenEdv-开源电子网

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

FPGA怎样串行接收16位或32位数据?

[复制链接]

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-8-4
在线时间
11 小时
发表于 2018-12-25 16:22:59 | 显示全部楼层 |阅读模式
1金钱
这个问题困扰我好多天了 串口通信只能一次接收8位数据,而如果接收16位或32位的数据,那么得通过串口接收2个或4个8位数据,那如何把先后收到的一组数据转化成一个16位或32位数据呢?

最佳答案

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

这个简单,寄存先后收到的数据,最后使用位拼接就行了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2018-12-25 16:23:00 | 显示全部楼层
这个简单,寄存先后收到的数据,最后使用位拼接就行了
回复

使用道具 举报

1

主题

10

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-12-25
在线时间
2 小时
发表于 2018-12-25 17:46:07 | 显示全部楼层
QinQZ 发表于 2018-12-25 16:45
这个简单,寄存先后收到的数据,最后使用位拼接就行了

为什么收发都是32bit 呢??不是其他的长度??收发拼接是没问题的,就是不知道这个是为什么。
回复

使用道具 举报

1

主题

10

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-12-25
在线时间
2 小时
发表于 2018-12-25 17:47:23 | 显示全部楼层
@openedvadmin,   @正点原子
回复

使用道具 举报

3

主题

1979

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5520
金钱
5520
注册时间
2018-10-21
在线时间
1561 小时
发表于 2018-12-25 21:11:44 来自手机 | 显示全部楼层
ywhfdl 发表于 2018-12-25 17:46
为什么收发都是32bit 呢??不是其他的长度??收发拼接是没问题的,就是不知道这个是为什么。

没太明白你的意思,哪里来的32bit?一般数据位是8位,数据量多就分多次发送
回复

使用道具 举报

26

主题

1513

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6243
金钱
6243
注册时间
2015-8-25
在线时间
996 小时
发表于 2018-12-26 08:40:16 | 显示全部楼层
串口咋发送16bit的数据的?难道不是分成两个8bit的发送的?那下位机是咋把这两个8bit的数据合成一个16bit的数据的?你是不是理解有误?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2018-12-26
在线时间
1 小时
发表于 2018-12-26 11:10:51 | 显示全部楼层
找74HC595的数据手册,了解595的结构。另外,VERILOG语言中有拼接运算符。
回复

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2018-8-4
在线时间
11 小时
 楼主| 发表于 2019-1-1 19:15:21 | 显示全部楼层
各位大佬的思路我大致已经明白了,但又遇到了新的问题。。
我参考的是原子哥的例程,其中有uart_done信号(当接收或发送完成时,置一个波特率脉冲的高电平),那么我如果是在always用sys_clk上升沿作为敏感信号,在always中if根据uart_done判断接收字节序号,那这样尽管接收了一个字节,但32位缓存器对这个字节保存了4次(uart_done高电平时间长于sys_clk高电平时间)。
这样该怎样处理呢?
回复

使用道具 举报

1

主题

12

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-4-8
在线时间
4 小时
发表于 2019-4-17 20:23:29 | 显示全部楼层
lq826311756 发表于 2019-1-1 19:15
各位大佬的思路我大致已经明白了,但又遇到了新的问题。。
我参考的是原子哥的例程,其中有uart_done信号 ...

检测uart_done上升沿,置位标志位,再保存就可以了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-10-3 05:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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