用官方的SSD1306.py 驱动 OLED
生活随笔
收集整理的這篇文章主要介紹了
用官方的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也可以。
- 在終端里輸入下面代碼
如果可以看到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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java SpringMVC mybat
- 下一篇: flexbox 伸缩布局