文档章节

用官方的SSD1306.py 驱动 OLED

shaoziyang
 shaoziyang
发布于 2017/04/23 17:01
字数 560
阅读 189
收藏 5

这几天看了一下micropython的I2C OLED驱动(SPI的类似),发现有几个版本。一个是官方的版本,还有早期网上流传的版本。

网上的版本使用了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中带有的函数不多,主要函数有:

  • text(string, x, y),在(x, y)处显示字符串,注意text()函数内置的字体是8x8的,暂时不能替换
  • poweroff(),关闭OLED显示
  • poweron(),空函数,无任何效果。可以用 write_cmd(0xAF) 代替
  • fill(n),n=0,清空屏幕,n大于0,填充屏幕
  • contrast(),调整亮度。0最暗,255最亮
  • invert(),奇数时反相显示,偶数时正常显示
  • pixel(x, y, c),在(x, y)处画点
  • show(),更新显示内容。前面大部分函数只是写入数据到缓冲区,并不会直接显示到屏幕,需要调用show()后才能显示出来。


另外还有部分功能可以用下面方法实现:

  • 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等功能。

© 著作权归作者所有

共有 人打赏支持
shaoziyang
粉丝 11
博文 75
码字总数 25881
作品 0
武汉
程序员
[MicroPython]STM32F407开发板驱动OLED液晶屏

1.实验目的 1.学习在PC机系统中扩展简单I/O 接口的方法。 2.进一步学习编制数据输出程序的设计方法。 3.学习 F407 Micropython开发板控制OLED显示字符。 2.所需元器件 F407 Micropython开发板...

bodasisiter
08/20
0
0
【应用笔记】小白也能玩转RT-Thread之 SPI设备

本应用笔记以驱动SPI接口的OLED显示屏为例,说明了如何添加SPI设备驱动框架及底层硬件驱动,使用SPI设备驱动接口开发应用程序。并给出了在正点原子STM32F4探索者开发板上验证的代码示例。 本...

RTThread物联网操作系统
04/13
0
0
PYB Nano驱动OLED显示

这是论坛网友hbzjt2012的作品: http://www.micropython.org.cn/forum.php?mod=viewthread&tid=408&extra= 这次使用PYB Nano驱动0.96寸OLED显示屏,此次参考了国外网友的例程,OLED可以使用S...

shaoziyang
2016/12/05
42
0
开源穿戴套件(DA14580)

开源穿戴套件(DA14580) DA14580具有业界最低的功率消耗。这些高度集成的解决方案所需的外部组件比其它任何蓝牙智能解决方案都要少,而且无需外部处理器即可支持完全托管的应用。 DA14580 是世...

kevinrliu
2015/05/27
7.3K
3
NuttX 5.6 发布,嵌入式操作系统

Nuttx 是一个实时嵌入式操作系统(RTOS),它有一个小巧是在微控制器的环境中使用。这是完全可扩展,从小型(8位)至中型嵌入式(32位)系统。它的目的还 在于要完全符合标准,完全实时,并完...

红薯
2010/06/06
357
0

没有更多内容

加载失败,请刷新页面

加载更多

活动招募 HUAWEI HiAI公开课·北京站-如何在4小时把你的APP变身AI应用

人工智能和机器学习是全球关注的新趋势,也是当前最火爆、最流行的话题。当你拿手机用语音助手帮你点外卖,智能推荐帮你把周边美食一网打尽;当你拿起P20拍照时,它将自动识别场景进行最美优...

华为终端开放实验室
11分钟前
0
0
匹配两位小数,js正则

var regex = /^\d*(\.[1-9]|\.\d[1-9])*$/ console.log(1.2,regex.test(1.2)); console.log(0.3,regex.test(0.3)); console.log(1.03,regex.test(1.03)); ......

微信小程序-暗潮
16分钟前
0
0
905. Sort Array By Parity - LeetCode

Question 905. Sort Array By Parity Solution 题目大意:数组排序,偶数放前,奇数在后,偶数的数之间不用管顺序,奇数的数之间也不用管顺序 思路:建两个list,一个放偶数,一个放奇数,最...

yysue
21分钟前
0
0
h5 禁止手机自带键盘弹出

html: <div style="width: 350px;margin:50px auto;"><input type="text" id="datePicker" class="date_picker form-control" placeholder="点击选择入住日期" /></div> js: $("#date......

Delete90
38分钟前
1
0
color透明度对照表

透明度百分比 数值 100% 不透明 FF 95% F2 90% E6 85% D9 80% CC 75% BF 70% B3 65% A6 60% 99 55% 8C 50% 80 45% 73 40% 66 35% 59 30% 4D 25% 40 20% 33 15% 26 10% 1A 5% 0D 0% 完全透明 ......

_无问西东
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部