日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用官方的SSD1306.py 驱动 OLED

發(fā)布時間:2024/4/17 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用官方的SSD1306.py 驱动 OLED 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2019獨角獸企業(yè)重金招聘Python工程師標準>>>

這幾天看了一下micropython的I2C OLED驅動(SPI的類似),發(fā)現(xiàn)有幾個版本。一個是官方的版本,還有早期網(wǎng)上流傳的版本。

網(wǎng)上的版本使用了pyb.I2C驅動,是將Arduino的OLED驅動移植過來,只能用在STM32上;而官方的驅動使用了machine.I2C,這樣有更好的兼容性,適合不同的硬件平臺,還可以用軟件I2C。

因為沒有看到有人介紹官方的SSD1306驅動,所以我就簡單的介紹一下I2C接口的OLED使用方法,SPI的也是類似的。下面以比較常見的0.96寸的128x64 I2C OLED為例:

  • 從github下載micropython的源碼(或者只下載其中的ssd1306.py文件),然后將ssd1306.py復制到PYB Nano或其它micropython板
  • 連接I2C和電源到I2C的OLED上,如果沒有硬件I2C,使用任意GPIO也可以。
  • 在終端里輸入下面代碼
from machine import I2C i2c=machine.I2C(-1, sda=machine.Pin("PB9"), scl=machine.Pin("PB8"), freq=400000)??from ssd1306 import SSD1306_I2C oled = SSD1306_I2C(128, 64, i2c) oled.text("Hello PYB Nano", 0, 0) oled.show()


如果可以看到Hello這一段文字,就說明驅動成功了。

?

SSD1306.py中帶有的函數(shù)不多,主要函數(shù)有:

  • text(string, x, y),在(x, y)處顯示字符串,注意text()函數(shù)內置的字體是8x8的,暫時不能替換
  • poweroff(),關閉OLED顯示
  • poweron(),空函數(shù),無任何效果??梢杂?write_cmd(0xAF) 代替
  • fill(n),n=0,清空屏幕,n大于0,填充屏幕
  • contrast(),調整亮度。0最暗,255最亮
  • invert(),奇數(shù)時反相顯示,偶數(shù)時正常顯示
  • pixel(x, y, c),在(x, y)處畫點
  • show(),更新顯示內容。前面大部分函數(shù)只是寫入數(shù)據(jù)到緩沖區(qū),并不會直接顯示到屏幕,需要調用show()后才能顯示出來。


另外還有部分功能可以用下面方法實現(xiàn):

  • framebuf.line(x1,y1,x2,y2,c),畫直線
  • framebuf.hline(x,y,w,c),畫水平直線
  • framebuf.vline(x,y,w,c),畫垂直直線
  • framebuf.fill_rect(x,y,w,h,c),畫填充矩形
  • framebuf.rect(x,y,w,h,c),畫空心矩形

大家也可以自己封裝一下,甚至加入畫園、字體選擇、顯示logo等功能。

轉載于:https://my.oschina.net/shaoziyang/blog/885516

總結

以上是生活随笔為你收集整理的用官方的SSD1306.py 驱动 OLED的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。