当前位置:首页 > 公众号精选 > FPGA之旅
[导读]这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结合上一例,以及第四例多bytes串口通信做一个有趣的例程。

一. 简介

这是FPGA之旅设计的第十例啦,在上一例中,已经成功驱动了OLED屏幕,本例将结合上一例,以及第四例多bytes串口通信做一个有趣的例程。


简单来说,就是利用Qt编写上位机,通过串口与FPGA进行通信,然后FPGA将接收到的数据,通过IIC接口发送给OLED,就这么一个流程。


二. QT上位机

大家可能对QT部分不感兴趣,也不熟悉,这里就只对上位机的功能进行说明,实现过程就不叙述了,想了解的可以点个赞,人多的话,就专门介绍一下。


上位机目前一共只实现了两个功能,一个是添加文字,另外一个是添加圆。添加过后,会在OLED预览区域中进行显示。等编辑好之后,就可以点击执行,这时候,上位机会解析这部分的数据,然后通过串口发送给FPGA,接下来的就是FPGA里面的处理了。


上位机可以更加完善。例如字体的大小可调,字体可选,圆的线宽可调,像其他图形矩形,椭圆,线等等,都是可以的。也可以扩展功能,如添加图片等等。上位机的介绍就到这里。


三. FPGA部分实现

(一). 串口部分

在第四例,多byte串口接收模块中,默认为每次接收到三个byte就使能一次。刚好这里发送给OLED的数据也是三个byte,就对应上了,不需要修改任何程序,直接在top模块里面例化即可。

UART_MulRX UART_MulRXHP( .sys_clk        (sys_clk), /*系统时钟 50M*/ .rst_n        (rst_n), /*复位信号*/  .uart_rxs_done    (uart_rxs_done), /*串口接收完成*/ .odats        (uart_rxs_data), /*接收数据*/  .uartrx        (UART_RX) /*uart rx信号线*/);

OLED部分

在上一例中,程序对OLED进行初始化之后,就进入了空闲态,在空闲态的时候,是没有任何处理的。但在本例中,需要对串口接收到的数据进行处理,通过IIC发送给OLED,这部分也很简单,代码如下。

module OLED_SelData( input        sys_clk, input        rst_n, input        init_req, input[23:0]  init_data,  input        uart_req, input[23:0]  uart_data,  output       IICWriteReq, output[23:0] IICWriteData); reg       IICWriteReqReg;reg[23:0] IICWriteDataReg;  assign IICWriteReq  = init_req | uart_req;assign IICWriteData = (init_req == 1'b1) ? init_data : uart_data; endmodule

这个例程,就是将前面的串口多byte串口通信和这个结和起来了,设计难点在上位机的编写,对上位机感兴趣的可以多了解一下,不感兴趣的可以参考一下,例如说,将IIC模块上包一个串口模块,就可以将IIC接口变为串口了,就可以通过串口来配置OLED了。效果如下。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的...

关键字: FPGA DS18B20温度传感器

这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。

关键字: FPGA OLED屏幕

第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。

关键字: FPGA DS18B20传感器

这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计...

关键字: FPGA OLED屏幕

这是FPGA之旅的第十一例了。在前面的例子中,已经对OLED有了一个基础的了解,本例将介绍如何在OLED上实现支符的显示,为后面的例程做准备。

关键字: FPGA OLED 字符

在许多高可靠性商业航空、太空、国防、汽车和工业应用中使用的系统需要获得IEC 61508安全完整性等级(SIL)3功能安全规范的认证。为了降低这一过程的成本,并加快上市,Microchip Technology Inc....

关键字: Microchip FPGA

接下来测试烧写功能,本次采用串口和USB烧写方式。使用ISP串口烧写这是51单片机常用的方案,本次测试比较顺利,没有遇到什么问题。但是USB烧写没有测试成功,USB烧写方式不需要任何的驱动和硬件支持,直接将USB线和ST...

关键字: PCB控制板 USB 串口

本例是FPGA之旅设计的第十四例,本例将红外遥控的使用,并将红外接收器接收到红外遥控的数据显示在数码管上。

关键字: FPGA 红外遥控信号

加利福尼亚州圣克拉拉市,2022年9月19日——高性能现场可编程逻辑门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)领域的领导性企业Achronix半导体公司宣布:该公司已经收购了Accolade...

关键字: Achronix FPGA

Flex Logix目前在推广他们的嵌入式 FPGA 技术。它非常坚固。它已经投放市场多年,并在许多流程节点上得到广泛支持。他们看到越来越多的客户采用该技术,他们正在宣传并尝试与更多的架构师和设计师会面,与他们分享他们可...

关键字: Flex Logix FPGA

FPGA之旅

8 篇文章

关注

发布文章

编辑精选

技术子站

关闭