完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
这个问题困扰我好多天了 串口通信只能一次接收8位数据,而如果接收16位或32位的数据,那么得通过串口接收2个或4个8位数据,那如何把先后收到的一组数据转化成一个16位或32位数据呢?
|
|
相关推荐
7个回答
|
|
这个简单,寄存先后收到的数据,最后使用位拼接就行了
|
|
|
|
为什么收发都是32bit 呢??不是其他的长度??收发拼接是没问题的,就是不知道这个是为什么。
|
|
|
|
@openedvadmin, @发烧友
|
|
|
|
没太明白你的意思,哪里来的32bit?一般数据位是8位,数据量多就分多次发送
|
|
|
|
串口咋发送16bit的数据的?难道不是分成两个8bit的发送的?那下位机是咋把这两个8bit的数据合成一个16bit的数据的?你是不是理解有误?
|
|
|
|
找74HC595的数据手册,了解595的结构。另外,VERILOG语言中有拼接运算符。
|
|
|
|
各位大佬的思路我大致已经明白了,但又遇到了新的问题。。
我参考的是原子哥的例程,其中有uart_done信号(当接收或发送完成时,置一个波特率脉冲的高电平),那么我如果是在always用sys_clk上升沿作为敏感信号,在always中if根据uart_done判断接收字节序号,那这样尽管接收了一个字节,但32位缓存器对这个字节保存了4次(uart_done高电平时间长于sys_clk高电平时间)。 这样该怎样处理呢? |
|
|
|
只有小组成员才能发言,加入小组>>
2866 浏览 3 评论
27629 浏览 2 评论
3439 浏览 2 评论
3959 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2305 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:19 , Processed in 0.841790 second(s), Total 89, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号