基于串口的HDMI图像显示实验

本实验的任务要求是利用串口像开发板发送图片数据,比较简单,因为是采用了ram来做缓存,最终显示出来的图片分辨率非常小,下一步学习完SDRAM,做个SDRAM控制器,就可以传大图了,本小白还在学习中,后续争取搞出来上传到博客上。

        这里本人是借鉴了野火FPGA学习的第40章基于RS232的VGA图像显示,在此进行实验的一个扩展学习。

实验总体框架:

1.图像数据处理

2.模块搭建以及修改

3.实验效果

1.主要是利用Matlab进行对图片的数据进行处理,处理代码如下:

clc; %清理命令行窗口

clear all; %清理工作区

RGB=imread('test2.bmp'); %使用imread函数读取图片数据

[ROW,COL,D]=size(RGB); %图片行,列,维度

R=RGB(:,:,1); %提取图片中的红色分量

G=RGB(:,:,2); %提取图片中的绿色分量

B=RGB(:,:,3); %提取图片中的蓝色分量

imgdata=zeros(1,ROW*COL); %定义一个初值为0的数组,存储转换后的图片数据

%转换为RGB332格式

for r=1:ROW

for c=1:COL

imgdata((r-1)*COL+c)=bitand(R(r,c),224)+bitshift(bitand(G(r,c),224),-3)+bitshift(bitand(B(r,c),192),-6);

end

end

%打开或生成txt文件,将格式转换完成的数据写入txt文件

fidc=fopen('data_test.txt','w+');

for i =1:ROW*COL

fprintf(fidc,'%02x ',imgdata(i));

end

fclose(fidc);

2.主要是在原框架上进行修改,在VGA的基础上,加入HDMI控制模块,实现VGA转HDMI的控制效果,在基于RS232的VGA图像显示实验基础上,主要做了几处修改,一是把修改时钟,这个主要取决于你所实验的图像显示分辨率以及帧率,比如我这次用HDMI所显示的分辨率是640*480,60帧,算下来差不多需要25M的工作时钟,并且后面HDMI差分输出时钟也需要125M的时钟(可以参考野火FPGA学习内容HDMI的驱动显示[野火]FPGA Verilog开发实战指南——基于Altera EP4CE10 征途Pro开发板 — [野火]FPGA Verilog开发实战指南——基于Altera EP4CE10 征途Pro开发板 文档)。二是修改接口数据RGB的分量,因为是采用的RGB332格式,在基于RS232的VGA图像显示实验中,传输的RGB数据是16bit,而在本实验是8bit,这就需要做一些处理和修改了。

3.最终实验结果如下图

源码放在这了:

链接:https://pan.baidu.com/s/1M-Me62NSP-jIJRt0tHTi8Q?pwd=hcbw 
提取码:hcbw

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在LabVIEW中进行串口通信并显示图像可以通过以下步骤实现。首先,你需要创建一个虚拟串口来模拟串口通信。你可以使用软件如"configure virtual serial port driver"来创建虚拟串口。创建的虚拟串口是一对串口,比如COM1和COM2。你可以使用LabVIEW中的串口模块来进行串口通信。在LabVIEW中,你可以使用VISA模块来配置串口。在配置串口时,你需要选择串口资源名称、波特率、比特位、校验位和停止位等参数。然后,你可以使用VISA模块中的读写函数来进行串口通信。在读取串口数据后,你可以将数据传递给LabVIEW中的图像显示模块,以显示图像。通过这些步骤,你可以在LabVIEW中实现串口通信并显示图像。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [labview串口通信遇到错误及解决(arduino下位机)](https://blog.csdn.net/qq_28992125/article/details/52988884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [labview串口、图片显示、文件夹/文件(txt,csv)操作、aceess数据库、页面跳转、全局变量](https://blog.csdn.net/qq_31868891/article/details/78248614)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值