这几天看了一下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等功能。

python oled_用官方的SSD1306.py 驱动 OLED相关推荐

  1. 用官方的SSD1306.py 驱动 OLED

    2019独角兽企业重金招聘Python工程师标准>>> 这几天看了一下micropython的I2C OLED驱动(SPI的类似),发现有几个版本.一个是官方的版本,还有早期网上流传 ...

  2. python,java,go,perl,php,c等驱动连接数据库

    文章目录 python,java,go,perl,php,c等驱动连接数据库 1.测试环境 2.python 2.1安装 2.2完整代码 3.java 3.1 安装 3.2代码 4.go 4.1 安装 ...

  3. 微软考虑将 Python 作为 Excel 官方脚本语言

    微软正考虑将 Python 作为 Excel 官方脚本语言之一,在 Excel 用户反馈平台中,「Python 作为 Excel 的脚本语言」成为了最热议的话题,是排名第二的提议的两倍多 目前为止,超 ...

  4. 编程软件python下载-python 2.7官方版

    python 2.7官方版是一种面向对象.直译式计算机程序设计语言,python 2.7官方版也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定. 软件介绍 这种语言具有非常简捷 ...

  5. 记事本写python怎么运行-从头学Python之编写可执行的.py文件

    Python可是真强大.但他具体是怎么强大的,让我们一点一点来了解吧(小编每天晚上下班回家会抽时间看看教程,多充实下自己也是好的). 废话不多说,就讲一下这个背景吧: 事情是这个样子的~本着好学的精神 ...

  6. 封装对MongoDB数据库的增删改查访问方法(基于MongoDB官方发布的C#驱动)

    本文利用MongoDB官方发布的C#驱动,封装了对MongoDB数据库的增删改查访问方法. 先用官方提供的mongo-csharp-driver ,当前版本为1.7.0.4714 编写数据库访问帮助类 ...

  7. python包的中 _init _.py文件介绍

    python包的中 _init _.py文件介绍 我们新建python包时常常会看到一个__init _.py文件. 作用介绍: ​ 一:这个文件是属于python包的,这个文件用作于标识python ...

  8. python软件-python 2.7官方版

    python 2.7官方版是一种面向对象.直译式计算机程序设计语言,python 2.7官方版也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定. 软件介绍 这种语言具有非常简捷 ...

  9. File “C:\Users\hjl\AppData\Local\Programs\Python\Python38\lib\site-packages\pymysql\err.py“, line 1

    今天通过python程序给数据库的表格插入数据,却提示报错 File "C:\Users\hjl\AppData\Local\Programs\Python\Python38\lib\sit ...

最新文章

  1. Spring Cloud Ribbon(服务消费者)
  2. ubuntu 升级nodejs 和 npm
  3. mysql 代码怎么优化_Mysql性能优化
  4. 转:如何用C#语言构造蜘蛛程序
  5. 送给程序员:IT大神们的编程名言
  6. Java 8中获取参数名称
  7. 看完这篇还不懂 MySQL 主从复制,可以回家躺平了~
  8. 第三章网络安全基础考试要点及真题分布
  9. 解决一个输入框可输入多个条件进行查询时,后端该怎么接收参数以及SQL语句如何写
  10. 互联网人求职现状:逃离互联网的人增多 求稳可以牺牲涨薪
  11. 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_9、SpringBoot基础HTTP其他提交方法请求实战...
  12. java查询mongodb数据_从mongodb中查询数据
  13. HTML对网页的加密和解密方法大全
  14. 虚拟机中修改Fedora10/9屏幕的分辨率
  15. python用四个圆画成花_秘籍:学画牡丹技法要领,不轻易外传...
  16. 小程序如何cdn加速服务器,小程序能用cdn加速吗
  17. opencv vector matlab,opencv实现 Matlab 寻找峰值函数 findpeaks
  18. 鸿蒙车机系统合作,鸿蒙OS车机系统来了!华为吉利合作曝光,博越Pro或率先用上...
  19. 论文译文——BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  20. 使用Bboss处理ES的dsl语句

热门文章

  1. MATLAB GPU加速
  2. 线程同步时,哪些操作会释放锁?哪些操作不会释放锁?
  3. SqlServer分组取一瓢和月初月末
  4. 单例模式(Singleton )的几种用法以及使用条件
  5. MyBatis入门(一) -- 简介
  6. centos6.7x86_64php7安装笔记 new
  7. W3C中meta标签详解
  8. linux 文件大小总和,linux磁盘占用跟每个文件夹大小总和不符?
  9. python通信编程_python 通信编程
  10. 信息学奥赛一本通(2050:【例5.20】字串包含)