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

FPGA教學——串口上位機模擬OLED屏

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

  一. 簡介

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

  簡單來說,,就是利用Qt編寫上位機,,通過串口與FPGA進行通信,然后FPGA將接收到的數(shù)據(jù),,通過IIC接口發(fā)送給OLED,,就這么一個流程。

  二. QT上位機

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

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

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

  微信圖片_20220905170825.png

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

  (一). 串口部分

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

  UART_MulRX  UART_MulRXHP(

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

  .rst_n        (rst_n),              /*復位信號*/

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

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

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

  );

  二

  OLED部分

  在上一例中,程序?qū)LED進行初始化之后,,就進入了空閑態(tài),,在空閑態(tài)的時候,是沒有任何處理的,。但在本例中,,需要對串口接收到的數(shù)據(jù)進行處理,通過IIC發(fā)送給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串口通信和這個結(jié)和起來了,,設(shè)計難點在上位機的編寫,,對上位機感興趣的可以多了解一下,不感興趣的可以參考一下,,例如說,,將IIC模塊上包一個串口模塊,就可以將IIC接口變?yōu)榇诹?,就可以通過串口來配置OLED了,。效果如下。

  微信圖片_20220905170912.png


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

微信圖片_20210517164139.jpg

微信截圖_20220708161426.png

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

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


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