樹莓派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.晶元目錄...