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

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

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

【經(jīng)驗(yàn)分享】Banana PI Leaf S3開發(fā)板之OLED屏顯示驅(qū)動(dòng)實(shí)現(xiàn)

電子發(fā)燒友論壇 ? 來源:未知 ? 2022-11-22 08:30 ? 次閱讀

OLED屏有多種形式,在例程中提供了一種I2C接口的0.96寸單色屏程序。本人則有一款I(lǐng)2C接口的0.96寸雙色屏,在掌握GPIO口使用的基礎(chǔ)上,以模擬I2C的方式實(shí)現(xiàn)了它的驅(qū)動(dòng)顯示。

其引腳的連接關(guān)系如下:

VCC----3.3V

GND---GND

SDA----GPIO15

SCL----GPIO16

2e061516-69fc-11ed-8abf-dac502259ad0.png

圖1引腳連接

將所用引腳設(shè)置為輸出模式的語句為:

sda=Pin(15,Pin.OUT) #15

sck=Pin(16,Pin.OUT) #16

實(shí)現(xiàn)數(shù)據(jù)數(shù)據(jù)發(fā)送的函數(shù)為:

def Write_IIC_Byte(IIC_Byte):
 da=IIC_Byte
 sck.off()
 for i in range(8):
   m=da
   m=m&0x80
   if(m==0x80):
    sda.on()
   else:
    sda.off()
   da=da<<1
   sck.on()
   sck.off()

實(shí)現(xiàn)清屏的函數(shù)為:

def OLED_Clear():
  for i in range(8):
   OLED_WR_Byte (0xb0+i,OLED_CMD)
   OLED_WR_Byte (0x00,OLED_CMD)
   OLED_WR_Byte (0x10,OLED_CMD)
  for j in range(128):
   OLED_WR_Byte(0x00,OLED_DATA)

OLED屏的初始化函數(shù)為:

def OLED_Init():
 OLED_WR_Byte(0xAE,OLED_CMD)
 OLED_WR_Byte(0x02,OLED_CMD)
 OLED_WR_Byte(0x10,OLED_CMD)
 OLED_WR_Byte(0x40,OLED_CMD)
 OLED_WR_Byte(0x81,OLED_CMD)
 OLED_WR_Byte(0xff,OLED_CMD)
 OLED_WR_Byte(0xA1,OLED_CMD)
 OLED_WR_Byte(0xC8,OLED_CMD)
 OLED_WR_Byte(0xA6,OLED_CMD)
 OLED_WR_Byte(0xA8,OLED_CMD)
 OLED_WR_Byte(0x3f,OLED_CMD)
 OLED_WR_Byte(0xD3,OLED_CMD)
 OLED_WR_Byte(0x00,OLED_CMD)
 OLED_WR_Byte(0xd5,OLED_CMD)
 OLED_WR_Byte(0x80,OLED_CMD)
 OLED_WR_Byte(0xD9,OLED_CMD)
 OLED_WR_Byte(0xF1,OLED_CMD)
 OLED_WR_Byte(0xDA,OLED_CMD)
 OLED_WR_Byte(0x12,OLED_CMD)
 OLED_WR_Byte(0xDB,OLED_CMD)
 OLED_WR_Byte(0x40,OLED_CMD)
 OLED_WR_Byte(0x20,OLED_CMD)
 OLED_WR_Byte(0x02,OLED_CMD)
 OLED_WR_Byte(0x8D,OLED_CMD)
 OLED_WR_Byte(0x14,OLED_CMD)
 OLED_WR_Byte(0xA4,OLED_CMD)
 OLED_WR_Byte(0xA6,OLED_CMD)
 OLED_WR_Byte(0xAF,OLED_CMD)
 OLED_WR_Byte(0xAF,OLED_CMD)
 OLED_Clear()
 OLED_Set_Pos(0,0)

為了驗(yàn)證程序的可行性,特將清屏函數(shù)改造為彩條繪制函數(shù),其內(nèi)容為:

def OLED_Clear():
  for i in range(8):
   OLED_WR_Byte (0xb0+i,OLED_CMD)
   OLED_WR_Byte (0x00,OLED_CMD)
   OLED_WR_Byte (0x10,OLED_CMD)
  for j in range(128):
   OLED_WR_Byte(0xf0,OLED_DATA) #OLED_DATA


def OLED_text():
  OLED_Init()
  OLED_Clear()


OLED_text ()

經(jīng)上傳測(cè)試,其顯示效果如圖2所示,說明驅(qū)動(dòng)程序是有效的。

2e1ebb8e-69fc-11ed-8abf-dac502259ad0.png

圖2繪制彩條

為了實(shí)現(xiàn)字符,需按如下形式來定義字庫(kù):

F8X16=[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,

0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

** ... **

0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]

所設(shè)計(jì)的字符串顯示函數(shù)為:

def OLED_ShowString(x,y,chr,Char_Size):
   for character in chr:
    OLED_ShowChar(x,y,character,Char_Size)
    x+=8
    if(x>120):
      x=0
      y+=2

實(shí)現(xiàn)字符串輸出測(cè)試的程序如下:

def OLED_text():
  OLED_Init()
  OLED_Clear()
  OLED_ShowString(0,0,'Banana PI ',16)
  OLED_ShowString(0,2,'Leaf S3',16)
  OLED_ShowString(0,4,'OLED TEST',16)
  OLED_ShowString(0,6,'jinglixixi',16)


OLED_text()

經(jīng)上傳測(cè)試,其顯示效果如圖3所示,說明驅(qū)動(dòng)程序是有效的。

2e493bfc-69fc-11ed-8abf-dac502259ad0.png

圖3顯示字符串

通過OLED屏驅(qū)動(dòng)程序的設(shè)計(jì),基本上掌握了Thonny的編程方法、函數(shù)的設(shè)計(jì)及數(shù)組元素的使用等,收獲還是很多的,后面就可以自主地進(jìn)行功能設(shè)計(jì)了。

本文由電子發(fā)燒友社區(qū)發(fā)布,轉(zhuǎn)載請(qǐng)注明以上來源。如需社區(qū)合作及入群交流,請(qǐng)?zhí)砑?/span>微信EEFans0806,或者發(fā)郵箱liuyong@huaqiu.com。

2e7c4d26-69fc-11ed-8abf-dac502259ad0.png


原文標(biāo)題:【經(jīng)驗(yàn)分享】Banana PI Leaf S3開發(fā)板之OLED屏顯示驅(qū)動(dòng)實(shí)現(xiàn)

文章出處:【微信公眾號(hào):電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(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)投訴

原文標(biāo)題:【經(jīng)驗(yàn)分享】Banana PI Leaf S3開發(fā)板之OLED屏顯示驅(qū)動(dòng)實(shí)現(xiàn)

文章出處:【微信號(hào):gh_9b9470648b3c,微信公眾號(hào):電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Banana Pi BPI-M4 Berry 開源硬件開發(fā)板以太網(wǎng)口和WiFi測(cè)試

    Banana Pi BPI-M4 Berry 開源硬件開發(fā)板以太網(wǎng)口和WiFi測(cè)試
    的頭像 發(fā)表于 07-02 16:16 ?397次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> BPI-M4 Berry 開源硬件<b class='flag-5'>開發(fā)板</b>以太網(wǎng)口和WiFi測(cè)試

    Banana Pi BPI-M7 RK3588開源硬件開發(fā)板評(píng)測(cè)試

    過去幾周,我對(duì)高性能 ARM 開發(fā)板的追求進(jìn)展有些不順,但經(jīng)過近三個(gè)月的測(cè)試,以下是我對(duì)Banana Pi BPI-M7的筆記。
    的頭像 發(fā)表于 06-18 15:21 ?430次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> BPI-M7 RK3588開源硬件<b class='flag-5'>開發(fā)板</b>評(píng)測(cè)試

    Banana Pi BPI-M7 RK3588開發(fā)板運(yùn)行RKLLM軟件堆AI大模型部署

    Banana Pi BPI-M7開源硬件開發(fā)板 RKLLM 軟件堆??梢詭椭脩艨焖賹?AI 模型部署到 Rockchip 芯片上。 整體框架如下:
    的頭像 發(fā)表于 04-11 17:12 ?2208次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> BPI-M7 RK3588<b class='flag-5'>開發(fā)板</b>運(yùn)行RKLLM軟件堆AI大模型部署

    Banana Pi BPI-M5 開源硬件開發(fā)板運(yùn)行Armbian 系統(tǒng)測(cè)試 #Linux開發(fā)板

    硬件開發(fā)板banana pi
    Banana Pi開源硬件
    發(fā)布于 :2023年12月05日 14:07:01

    Banana Pi BPI-M5開發(fā)板Boot log文件導(dǎo)出說明 #開發(fā)板 #開源硬件 #嵌入式開發(fā)

    硬件開發(fā)板banana pi
    Banana Pi開源硬件
    發(fā)布于 :2023年12月05日 13:50:04

    Banana Pi BPI-W3 開源硬件開發(fā)板應(yīng)用特點(diǎn)

    Banana Pi BPI-W3 開源硬件開發(fā)板是一款強(qiáng)大的開源硬件開發(fā)板,具有廣泛的功能和應(yīng)用。在本篇文章中,我將詳細(xì)介紹 BPI-W
    的頭像 發(fā)表于 12-01 15:44 ?498次閱讀

    快速上手Banana Pi BPI-M4 Zero 全志科技H618開源硬件開發(fā)開發(fā)板

    快速上手Banana Pi BPI-M4 Zero 全志科技H618開源硬件開發(fā)開發(fā)板
    的頭像 發(fā)表于 11-30 14:42 ?1287次閱讀
    快速上手<b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> BPI-M4 Zero 全志科技H618開源硬件<b class='flag-5'>開發(fā)</b><b class='flag-5'>開發(fā)板</b>

    Banana Pi BPI-M4 Berry 全志H618開源開發(fā)板低溫環(huán)境測(cè)試啟動(dòng)和運(yùn)行

    Banana Pi BPI-M4 Berry 全志H618開源開發(fā)板低溫環(huán)境測(cè)試啟動(dòng)和運(yùn)行
    的頭像 發(fā)表于 11-30 14:36 ?777次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> BPI-M4 Berry 全志H618開源<b class='flag-5'>開發(fā)板</b>低溫環(huán)境測(cè)試啟動(dòng)和運(yùn)行

    Banana Pi BPI-M4 Berry 全志H618開源開發(fā)板低溫環(huán)境測(cè)試啟動(dòng)和運(yùn)行

    Banana Pi BPI-M4 Berry 全志H618開源開發(fā)板低溫環(huán)境測(cè)試啟動(dòng)和運(yùn)行
    的頭像 發(fā)表于 11-30 14:26 ?452次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> BPI-M4 Berry 全志H618開源<b class='flag-5'>開發(fā)板</b>低溫環(huán)境測(cè)試啟動(dòng)和運(yùn)行

    Banana Pi BPI-M6開源硬件開發(fā)板介紹以及與 Raspberry Pi 5 的比較

    Banana Pi BPI-M6開源硬件開發(fā)板介紹以及與 Raspberry Pi 5 的比較
    的頭像 發(fā)表于 11-09 09:22 ?589次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> BPI-M6開源硬件<b class='flag-5'>開發(fā)板</b>介紹以及與 Raspberry <b class='flag-5'>Pi</b> 5 的比較

    Banana Pi BPI-W3 RK3588平臺(tái)驅(qū)動(dòng)調(diào)試篇 [ PCIE篇二 ] - PCIE的開發(fā)指南

    Banana Pi BPI-W3 RK3588平臺(tái)驅(qū)動(dòng)調(diào)試篇 [ PCIE篇 ] - PCIE的開發(fā)指南(二)
    的頭像 發(fā)表于 11-02 09:24 ?573次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> BPI-W<b class='flag-5'>3</b> RK3588平臺(tái)<b class='flag-5'>驅(qū)動(dòng)</b>調(diào)試篇 [ PCIE篇二 ] - PCIE的<b class='flag-5'>開發(fā)</b>指南

    Banana Pi BPI-P2 Pro 開源硬件開發(fā)板,Rockchip RK3308開發(fā)板啟動(dòng)及設(shè)置

    Banana -Pi BPi-P2 Pro 是一款采用RockChip Arm 處理器的新型開發(fā)板。 64 位四核 Arm Cotrex-A35,使用 RockChip RK3308
    的頭像 發(fā)表于 11-02 09:13 ?588次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> BPI-P2 Pro 開源硬件<b class='flag-5'>開發(fā)板</b>,Rockchip RK3308<b class='flag-5'>開發(fā)板</b>啟動(dòng)及設(shè)置

    S3C2440開發(fā)板實(shí)現(xiàn)按鍵點(diǎn)亮LED驅(qū)動(dòng)開發(fā)的詳細(xì)過程

    電子發(fā)燒友網(wǎng)站提供《S3C2440開發(fā)板實(shí)現(xiàn)按鍵點(diǎn)亮LED驅(qū)動(dòng)開發(fā)的詳細(xì)過程.pdf》資料免費(fèi)下載
    發(fā)表于 10-11 09:36 ?0次下載
    <b class='flag-5'>S3</b>C2440<b class='flag-5'>開發(fā)板</b>上<b class='flag-5'>實(shí)現(xiàn)</b>按鍵點(diǎn)亮LED<b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開發(fā)</b>的詳細(xì)過程

    Banana Pi 開源硬件基于ESP32-S3開發(fā)的物聯(lián)網(wǎng)開發(fā)板系列

    Banana Pi 開源硬件基于ESP32-S3開發(fā)的物聯(lián)網(wǎng)開發(fā)板系列
    的頭像 發(fā)表于 09-28 16:21 ?970次閱讀
    <b class='flag-5'>Banana</b> <b class='flag-5'>Pi</b> 開源硬件基于ESP32-<b class='flag-5'>S3</b><b class='flag-5'>開發(fā)</b>的物聯(lián)網(wǎng)<b class='flag-5'>開發(fā)板</b>系列

    Banana Pi 開源硬件基于ESP32-S3開發(fā)的物聯(lián)網(wǎng)開發(fā)板系列

    ://wiki.banana-pi.org/BPI-Centi-S3 香蕉派 BPI-PicoW-S3是為物聯(lián)網(wǎng)開發(fā)和創(chuàng)客DIY設(shè)計(jì)的一款開源硬件
    發(fā)表于 09-27 17:10