《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 其他 > FPGA教學(xué)——串口上位機(jī)模擬OLED屏

FPGA教學(xué)——串口上位機(jī)模擬OLED屏

2022-09-05
來(lái)源:電子技術(shù)應(yīng)用專欄作家 FPGA之旅
關(guān)鍵詞: OLED FPGA

  一. 簡(jiǎn)介

  這是FPGA之旅設(shè)計(jì)的第十例啦,在上一例中,已經(jīng)成功驅(qū)動(dòng)了OLED屏幕,本例將結(jié)合上一例,以及第四例多bytes串口通信做一個(gè)有趣的例程。

  簡(jiǎn)單來(lái)說(shuō),就是利用Qt編寫上位機(jī),通過(guò)串口與FPGA進(jìn)行通信,然后FPGA將接收到的數(shù)據(jù),通過(guò)IIC接口發(fā)送給OLED,就這么一個(gè)流程。

  二. QT上位機(jī)

  大家可能對(duì)QT部分不感興趣,也不熟悉,這里就只對(duì)上位機(jī)的功能進(jìn)行說(shuō)明,實(shí)現(xiàn)過(guò)程就不敘述了,想了解的可以點(diǎn)個(gè)贊,人多的話,就專門介紹一下。

  上位機(jī)目前一共只實(shí)現(xiàn)了兩個(gè)功能,一個(gè)是添加文字,另外一個(gè)是添加圓。添加過(guò)后,會(huì)在OLED預(yù)覽區(qū)域中進(jìn)行顯示。等編輯好之后,就可以點(diǎn)擊執(zhí)行,這時(shí)候,上位機(jī)會(huì)解析這部分的數(shù)據(jù),然后通過(guò)串口發(fā)送給FPGA,接下來(lái)的就是FPGA里面的處理了。

  上位機(jī)可以更加完善。例如字體的大小可調(diào),字體可選,圓的線寬可調(diào),像其他圖形矩形,橢圓,線等等,都是可以的。也可以擴(kuò)展功能,如添加圖片等等。上位機(jī)的介紹就到這里。

  微信圖片_20220905170825.png

  三. FPGA部分實(shí)現(xiàn)

  (一). 串口部分

  在第四例,多byte串口接收模塊中,默認(rèn)為每次接收到三個(gè)byte就使能一次。剛好這里發(fā)送給OLED的數(shù)據(jù)也是三個(gè)byte,就對(duì)應(yīng)上了,不需要修改任何程序,直接在top模塊里面例化即可。

  UART_MulRX  UART_MulRXHP(

  .sys_clk        (sys_clk),        /*系統(tǒng)時(shí)鐘 50M*/

  .rst_n        (rst_n),              /*復(fù)位信號(hào)*/

  .uart_rxs_done    (uart_rxs_done),   /*串口接收完成*/

  .odats        (uart_rxs_data),           /*接收數(shù)據(jù)*/

  .uartrx        (UART_RX)       /*uart rx信號(hào)線*/

  );

  二

  OLED部分

  在上一例中,程序?qū)LED進(jìn)行初始化之后,就進(jìn)入了空閑態(tài),在空閑態(tài)的時(shí)候,是沒有任何處理的。但在本例中,需要對(duì)串口接收到的數(shù)據(jù)進(jìn)行處理,通過(guò)IIC發(fā)送給OLED,這部分也很簡(jiǎn)單,代碼如下。

  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

  這個(gè)例程,就是將前面的串口多byte串口通信和這個(gè)結(jié)和起來(lái)了,設(shè)計(jì)難點(diǎn)在上位機(jī)的編寫,對(duì)上位機(jī)感興趣的可以多了解一下,不感興趣的可以參考一下,例如說(shuō),將IIC模塊上包一個(gè)串口模塊,就可以將IIC接口變?yōu)榇诹?,就可以通過(guò)串口來(lái)配置OLED了。效果如下。

  微信圖片_20220905170912.png


 更多信息可以來(lái)這里獲取==>>電子技術(shù)應(yīng)用-AET<<

微信圖片_20210517164139.jpg

微信截圖_20220708161426.png

電子技術(shù)應(yīng)用專欄作家  FPGA之旅

原文鏈接:https://mp.weixin.qq.com/s/_6IMXK_hM0udLnciTAc75A


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。