樹莓派GPIO入門11 驅動液晶螢幕(一)

2021-08-09 10:22:19 字數 3086 閱讀 2338

樹莓派gpio入門11-驅動液晶螢幕(一)

本系列將驅動一塊1.44"的128x128畫素的彩色液晶螢幕。

並分幾個篇幅分別講述如何使其顯示色塊,英文數字,漢字以及。

本文是系列的第一篇,目標是點亮螢幕並顯示指定色塊。

這次直接上**,大家自己複製**儲存為py檔案。檔名無所謂。

#!/usr/bin/env python

import rpi.gpio as gpio

import time

cs=23 # 片選

rs=17 # 資料 / 命令 切換

sda=13 # 資料

scl=19 # 時鐘

reset=27 # 復位

# 傳輸byte

def setbytedata(data):

# print ""

# print "s-----------setbyte---------------:", hex(data)

for bit in range(0,8):

# 傳入的數字從高位到低位依次判斷是否為1,若為1則設定高電平,否則設定低電平

# 判斷的方法是先向左移位,把要判斷的位移動到最高位然後跟0x80(1000 0000)相與,

# 如果結果仍然是0x80(1000 0000)就表示最高位是1,否則最高位就是0

if ((data然後,按下錶連線液晶屏和樹莓派。(連線完以後螢幕應該是白屏狀態)

液晶屏 |樹莓派

----------|----------------------------

lcd |3.3v(不可以是5v!!)

sck |gpio19

sda |gpio13

ao |gpio17

reset |gpio27

cs |gpio23

gnd |gnd

vcc |3.3v(不可以是5v!!)

然後,執行!

sudo python prog.py

不出意外,你應該能看到螢幕被慢慢地掃瞄重新整理成紅屏了!!!

上面這兩個函式,乙個用來傳送指令種類,乙個用來傳送指令內容。區別僅僅在於rs引腳的電平高低不同。

另外,螢幕初始化函式lcd_init()裡有一堆命令,天書一般,光是看就暈了。

別暈,這些**大多只用執行一遍,最開始不必關心,照葫蘆畫瓢即可。

下面是你需要注意的關鍵指令種類和內容:

下面的**設定的範圍是(0,0)-(127, 127),也就是全螢幕。

write_command(0x2a) # set column address

write_data(0x00)

write_data(0x00)

write_data(0x00)

write_data(0x7f)

write_command(0x2b) # set page address

write_data(0x00)

write_data(0x00)

write_data(0x00)

write_data(0x7f)

write_command(0x2c)

show_single_color(0xf8,0x00) # 紅色背景

......

def show_single_color(dh,dl):

for i in xrange(0,128):

for j in xrange(0,128):

write_data_16bit(dh,dl)

這就是本文示例**顯示紅屏的原理。

其實只要學會了這3個命令的使用,基本上啥都能顯示了,無非是效率問題。給大家留個作業,自己完成本文開頭的最終效果彩帶。

本節到此結束,下一節我們繼續討論。

有人問博主0xf800是什麼鬼?紅色難道不應該是0xff0000嗎?

這裡就引出乙個rgb顏色資料格式的問題,0xf800和0xff0000都是紅色,只是格式不一樣。

我們常見的0xff0000這種格式一共是24位,紅綠藍各用8位表示,所以紅色就是ff,00,00。

而本文使用的是另一種叫rgb565的格式,這種格式一共只有16位,紅綠藍分別使用5位6位5位。

根據上圖,紅色應該是11111000 00000000,也就是0xf800。

其實,這款彩屏支援以下3種顏色格式

write_command(0x3a)

write_data(0x03)

write_command(0x3a)

write_data(0x05)

write_command(0x3a)

write_data(0x06)

詳細內容請自己參考文件(9.8 data color coding)。

樹莓派GPIO操作

樹莓派的gpio操作被抽象為檔案讀寫,下面以乙個例子來說明gpio操作 1 啟用gpio21 echo 21 sys class gpio export這個命令把字元 21 輸入 sys class gpio export之中,命令執行後,sys class gpio下面增加了代表gpio21的乙個...

樹莓派GPIO入門之控制LED燈

物件讀者 我假設你的樹莓派已經連上你家裡的路由 有線無線都行 並且你已經可以在另外一台裝置 台式電腦,筆記本,手機,平板電腦都可以 上通過ssh軟體登陸到你的樹莓派了。當然你也可以直接在樹莓派上通過hdmi連線顯示器,通過usb鍵盤滑鼠直接進行操作。不管怎樣,你可以啟動樹莓派並進入樹莓派的linux...

樹莓派核心驅動編寫 控制GPIO的輸出

匯流排位址,實體地址,虛擬位址 參考博文 位址概念 樹莓派 1.bcm2835 樹莓派3b cpu型號,是arm cotexa53架構 2440 2410 cpu型號 是arm9架構 2.樹莓派是32位系統,1g 記憶體,只能識別949m 3.匯流排位址4g,實體地址1g,虛擬位址4g 1.晶元目錄...