一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用小凌派RK2206開發(fā)板點(diǎn)亮LCD屏并實(shí)現(xiàn)字符顯示的教程

海闊天空的專欄 ? 來源: 凌智電子 ? 作者: 凌智電子 ? 2022-06-10 14:22 ? 次閱讀

一、簡(jiǎn)介

LCD的應(yīng)用很廣泛,簡(jiǎn)單如手表上的液晶顯示屏,儀表儀器上的液晶顯示器或者是電腦筆記本上的液晶顯示器,都使用了LCD。在一般的辦公設(shè)備上也很常見,如傳真機(jī),復(fù)印機(jī),以及一些娛樂器材玩具等也常常見到LCD的足跡。

本小節(jié)使用的是ST7789V, 用于單片驅(qū)動(dòng)262K色圖像TFT-LCD, 包含 720(240*3色) x 320 線輸出, 可以直接以SPI協(xié)議, 或者8位/9位/16位/18位并行連接外部控制器。ST7789V顯示數(shù)據(jù)存儲(chǔ)在片內(nèi)240x320x18 bits內(nèi)存中, 顯示內(nèi)存的讀寫不需要外部時(shí)鐘驅(qū)動(dòng)。

接下來先看本案例的實(shí)際操作視頻

二、硬件電路設(shè)計(jì)

模塊整體硬件電路如圖1所示,電路中包含了電源電路、液晶接口以及小凌派-RK2206開發(fā)板連接的相關(guān)引腳。

圖片

圖1 硬件電路圖

其中,液晶屏ST7789V的相關(guān)引腳資源如圖2所示。

圖片

圖2 液晶屏ST7789V硬件資源示意圖

其中,LCD液晶屏引腳功能描述,如下表1所示。

表1 LCD液晶屏引腳功能表

序號(hào)

LCD引腳

功能描述

1

D/C

指令/數(shù)據(jù)選擇端,L:指令,H:數(shù)據(jù)

2

RESET

復(fù)位信號(hào)線,低電平有效

3

SPI_MOSI

SPI數(shù)據(jù)輸入信號(hào)線

4

SPI_CLK

SPI時(shí)鐘信號(hào)線

5

SPI_CS

SPI片選信號(hào)線,低電平有效

6

GND

電源地引腳

7

5V

5V電源輸入引腳

其中,LCD液晶屏與小凌派-RK2206開發(fā)板連接如圖3所示。

圖片

圖3 2.4寸液晶屏和小凌派-RK2206開發(fā)板連接圖

三、軟件設(shè)計(jì)

本章節(jié)將利用小凌派-RK2206開發(fā)板上的GPIO和SPI接口方式來點(diǎn)亮2.4寸液晶屏,并實(shí)現(xiàn)ASCII字符的顯示及漢字的顯示。

1. 主程序設(shè)計(jì)

如圖4所示為LCD液晶屏主程序流程圖,開機(jī)LiteOS系統(tǒng)初始化后,進(jìn)入主程序。主程序首先進(jìn)行GPIO和SPI總線初始化,然后配置LCD液晶屏設(shè)備,最后進(jìn)入循環(huán)中。在循環(huán)中,主程序控制SPI對(duì)LCD液晶屏進(jìn)行ASCII字符和漢字顯示。

圖片

圖4 主程序流程圖

2. LCD初始化程序設(shè)計(jì)

LCD初始化程序主要分為GPIO和SPI總線初始化,配置LCD兩部分。

其中,GPIO初始化首先用LzGpioInit()函數(shù)將GPIO0_PC3初始化為GPIO引腳,然后用LzGpioSetDir()將引腳設(shè)置為輸出模式,最后調(diào)用LzGpioSetVal()輸出低電平。

poYBAGKi4CuAbAQTAABFlzouriM127.png

SPI初始化首先用SpiIoInit()函數(shù)將GPIO0_PC0復(fù)用為SPI0_CS0n_M1,GPIO0_PC1復(fù)用為SPI0_CLK_M1,GPIO0_PC2復(fù)用為SPI0_MOSI_M1。其次調(diào)用LzI2cInit()函數(shù)初始化SPI0端口。

pYYBAGKi4IqAJYtBAABHniMtx1M466.png

配置LCD主要是配置ST7789V的工作模式,具體代碼如下所示:

poYBAGKi4JOAHXSWAAKagnXxroY718.png

3. LCD的點(diǎn)數(shù)據(jù)設(shè)計(jì)

ST7789V采用SPI通信方式,數(shù)據(jù)傳輸協(xié)議如下:

4-Line Serial Interface => 16-bit/pixel(RGB 5-6-5-bit input),65K-Color,3Ah="05h"

數(shù)據(jù)傳輸時(shí)序圖如圖5所示。

圖片

圖5 ST7789V液晶屏SPI數(shù)據(jù)傳輸時(shí)序圖

也就是每個(gè)像素占用2個(gè)字節(jié),RGB為5+6+5。因此,往LCD液晶屏發(fā)送某一個(gè)像素信息的程序如下所示:

pYYBAGKi4NiANrRHAADzR4yfHf4961.png

4. LCD的ASCII字符顯示設(shè)計(jì)

預(yù)先將規(guī)定字號(hào)的ASCII字符的LCD液晶屏像素信息存放于在lcd_font.h源代碼文件中。該表格依照ASCII的數(shù)值來存放像素信息。例如:空格的ASCII數(shù)值是0x0,則程序?qū)⑾袼胤诺降谝恍邢袼刂?,如下源代碼所示。

poYBAGKi4N2AZEllAADOtTogvWc987.png

當(dāng)需要將某一個(gè)字號(hào)的ASCII字符投射到LCD液晶屏?xí)r,程序根據(jù)字號(hào)大小找到對(duì)應(yīng)的字號(hào)的ASCII字符像素表,然后根據(jù)ASCII字符的數(shù)值找到對(duì)應(yīng)的像素行,最后將該像素行數(shù)據(jù)依次通過SPI總線發(fā)送給LCD液晶屏。如下源代碼所示。

poYBAGKi4SGAPC3KAAFhZlVAO7I632.png


5. LCD的漢字顯示設(shè)計(jì)

同上原理,程序?qū)⒛骋粋€(gè)特定字號(hào)的漢字信息存放于一個(gè)數(shù)據(jù)結(jié)構(gòu)體數(shù)組中。該數(shù)據(jù)結(jié)構(gòu)體包含字體編碼Index和像素?cái)?shù)據(jù)Msk。具體原代碼如下所示。

pYYBAGKi4SSAKdh-AABt5-CfVI0507.png

通過漢字像素軟件將對(duì)應(yīng)的漢字和像素存放于lcd_font.h文件中。具體源代碼如下所示。

pYYBAGKi4WmALcezAAC1ZTB-ODY449.png

當(dāng)程序需要將某一個(gè)特定字號(hào)的漢字投射到LCD液晶屏?xí)r,程序就根據(jù)對(duì)應(yīng)的字號(hào)查找對(duì)應(yīng)字號(hào)的tfontXX數(shù)組,并將對(duì)應(yīng)的像素行數(shù)據(jù)發(fā)送給LCD液晶屏。具體源代碼如下所示。

poYBAGKi4XGAQgEdAADG7LZerqo275.png

四、編譯過程

1、打開sdk下面路徑的文件

/vendor/lockzhiner/rk2206/samples/b4_lcd/lcd_example.c

注意:Gitee已有相關(guān)源代碼,請(qǐng)大家根據(jù)上述的需求修改相關(guān)源代碼

網(wǎng)址:https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk2206-openharmony3.0lts/tree/master/vendor/lockzhiner/rk2206/samples/b4_lcd

2、修改編譯腳本

修改 vendor/lockzhiner/rk2206/sample 路徑下 BUILD.gn 文件,指定 lcd_example 參與編譯。

"./b4_lcd:lcd_example",

修改 device/lockzhiner/rk2206/sdk_liteos 路徑下 Makefile 文件,添加 -llcd_example 參與編譯。

hardware_LIBS = -lhal_iothardware -lhardware -llcd_example

3、編譯固件

hb set -root .

hb set

hb build -f

來源:凌智電子

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    34

    文章

    4480

    瀏覽量

    170129
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5389

    瀏覽量

    100889
  • RK2206
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    2052
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于OpenHarmony+小RK2206開發(fā)板制作的簡(jiǎn)易示波器

    基于OpenHarmony + 小RK2206開發(fā)板制作的簡(jiǎn)易示波器,實(shí)時(shí)采集波形,實(shí)時(shí)計(jì)算實(shí)時(shí)
    的頭像 發(fā)表于 05-10 09:02 ?4970次閱讀

    RK2206鴻蒙開發(fā)板原理圖硬件資料

    RK2206鴻蒙開發(fā)板原理圖和硬件datasheet資料分享,需要的自取~
    發(fā)表于 04-01 17:39

    【小RK2206開發(fā)板試用體驗(yàn)】小隔空操作迪文COF智能

    這次有幸獲得小RK2206開發(fā)板試用,選擇的模塊是手勢(shì),通過官方例程,進(jìn)行了基礎(chǔ)的測(cè)試,非常順利。之后就想結(jié)合其他東西,多玩一玩。剛好之前有迪文的妍姐提供的迪文COF智能
    發(fā)表于 05-06 13:57

    【小RK2206開發(fā)板試用體驗(yàn)】第2章 源碼編譯與固件下載

    開發(fā)環(huán)境:開發(fā)系統(tǒng):Ubuntu 20.04開發(fā)板:小-RK2206
    發(fā)表于 05-08 14:02

    【小RK2206開發(fā)板試用體驗(yàn)】第3章 應(yīng)用開發(fā)

    開發(fā)環(huán)境:開發(fā)系統(tǒng):Ubuntu 20.04開發(fā)板:小-RK2206
    發(fā)表于 05-08 14:07

    RK2206開發(fā)板實(shí)現(xiàn)LCD液晶顯示的設(shè)計(jì)

    1、如何在小-RK2206開發(fā)板LCD液晶顯示
    發(fā)表于 08-11 17:00

    基于OpenHarmony系統(tǒng)和小RK2206開發(fā)板的避障小車

    這是一款基于OpenHarmony系統(tǒng)和小-RK2206開發(fā)板的避障小車。同時(shí),小車上搭載了超聲波測(cè)距模塊、舵機(jī)模塊、紅外尋跡模塊、直流電機(jī)模塊。
    的頭像 發(fā)表于 04-21 07:58 ?5669次閱讀

    基于小RK2206開發(fā)板所制作的簡(jiǎn)易示波器

    基于OpenHarmony + 小RK2206開發(fā)板制作的簡(jiǎn)易示波器,實(shí)時(shí)采集波形,實(shí)時(shí)計(jì)算實(shí)時(shí)
    的頭像 發(fā)表于 05-06 17:09 ?2031次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開發(fā)板</b>所制作的簡(jiǎn)易示波器

    -RK2206開發(fā)板:UART控制案例

    -RK2206開發(fā)板:UART控制案例一、簡(jiǎn)介通用異步收發(fā)傳輸器(UniversalAsynchronousReceiver/Transmitter),通常稱作UART。它將要傳
    的頭像 發(fā)表于 06-14 11:12 ?1299次閱讀
    小<b class='flag-5'>凌</b><b class='flag-5'>派</b>-<b class='flag-5'>RK2206</b><b class='flag-5'>開發(fā)板</b>:UART控制案例

    基于小RK2206開發(fā)板wifi-tcp通信實(shí)驗(yàn)

    基于小RK2206開發(fā)板wifi-tcp通信實(shí)驗(yàn)在開發(fā)過程中想要與開發(fā)板進(jìn)行通信一般使用串口
    的頭像 發(fā)表于 06-14 11:10 ?1796次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開發(fā)板</b>wifi-tcp通信實(shí)驗(yàn)

    基于小RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制ADC外設(shè)

    1、案例簡(jiǎn)介本案例主要講解如何在小-RK2206開發(fā)板上使用IoT庫的ADC接口,進(jìn)行ADC編程開發(fā)。例程內(nèi)容為創(chuàng)建一個(gè)任務(wù),讀取按鍵的
    的頭像 發(fā)表于 04-10 16:00 ?238次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開發(fā)板</b>:OpenHarmony如何使用IoT接口控制ADC外設(shè)

    基于小RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制GPIO外設(shè)

    1、案例簡(jiǎn)介本案例主要是如何在小-RK2206開發(fā)板上使用IOT庫的GPIO接口,進(jìn)行GPIO編程開發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過配置GP
    的頭像 發(fā)表于 04-11 15:36 ?336次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開發(fā)板</b>:OpenHarmony如何使用IoT接口控制GPIO外設(shè)

    基于小RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制GPIO中斷

    1、實(shí)驗(yàn)簡(jiǎn)介本實(shí)驗(yàn)將演示如何在小-RK2206開發(fā)板上使用IOT庫的GPIO中斷模式,進(jìn)行GPIO編程開發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過配置
    的頭像 發(fā)表于 04-21 10:39 ?234次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開發(fā)板</b>:OpenHarmony如何使用IoT接口控制GPIO中斷

    基于小RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制UART外設(shè)

    1、實(shí)驗(yàn)簡(jiǎn)介本實(shí)驗(yàn)將演示如何在小-RK2206開發(fā)板上使用IOT庫的UART接口,進(jìn)行UART編程開發(fā)。例程將創(chuàng)建一個(gè)任務(wù),通過配置UA
    的頭像 發(fā)表于 04-22 14:22 ?229次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開發(fā)板</b>:OpenHarmony如何使用IoT接口控制UART外設(shè)

    基于小RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制FLASH外設(shè)

    1、實(shí)驗(yàn)簡(jiǎn)介本實(shí)驗(yàn)將演示如何在小-RK2206開發(fā)板上使用IOT庫的FLASH接口,進(jìn)行FLASH編程開發(fā)。例程將創(chuàng)建一個(gè)任務(wù),
    的頭像 發(fā)表于 04-22 14:49 ?173次閱讀
    基于小<b class='flag-5'>凌</b><b class='flag-5'>派</b><b class='flag-5'>RK2206</b><b class='flag-5'>開發(fā)板</b>:OpenHarmony如何使用IoT接口控制FLASH外設(shè)