25155|70

1万

帖子

25

TA的资源

版主

楼主
 

用官方的SSD1306.py 驱动 OLED [复制链接]

 
 
此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处

这几天看了一下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也可以。
  • 在终端里输入下面代码

  1. from machine import I2C
  2. i2c=machine.I2C(-1, sda=machine.Pin("PB9"), scl=machine.Pin("PB8"), freq=400000)  

  3. from ssd1306 import SSD1306_I2C
  4. oled = SSD1306_I2C(128, 64, i2c)
  5. oled.text("Hello PYB Nano", 0, 0)
  6. 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()后才能显示出来。

另外还有部分功能可以用下面方法实现:
游客,如果您要查看本帖隐藏内容请回复







最新回复

谢谢分享   详情 回复 发表于 2024-8-30 11:43

赞赏

1

查看全部赞赏

点赞 关注(1)
 
 

回复
举报

356

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
 
 

回复

2774

帖子

8

TA的资源

版主

板凳
 
这是把Micropython玩出朵花来的节奏,来学习下。这个挺好,等有空了,我也要把各种东西都玩玩,全都放得要生霉了都没有空玩!

点评

基本功能大家都玩过了,下一步就是要逐步开始做应用了,真正用到产品中去  详情 回复 发表于 2017-4-23 15:23
 
 
 

回复

1万

帖子

25

TA的资源

版主

4
 
strong161 发表于 2017-4-23 11:51
这是把Micropython玩出朵花来的节奏,来学习下。这个挺好,等有空了,我也要把各种东西都玩玩,全都放得要 ...

基本功能大家都玩过了,下一步就是要逐步开始做应用了,真正用到产品中去
 
 
 

回复

1万

帖子

25

TA的资源

版主

5
 
补充一下图片:




 
 
 

回复

1239

帖子

66

TA的资源

纯净的硅(中级)

6
 
 
 

回复

280

帖子

0

TA的资源

一粒金砂(高级)

7
 
学习一下!!
 
 
 

回复

1005

帖子

0

TA的资源

纯净的硅(高级)

8
 
 
 

回复

168

帖子

0

TA的资源

一粒金砂(中级)

9
 
心好累,看个帖子还得回复。
 
 
 

回复

2640

帖子

6

TA的资源

五彩晶圆(初级)

10
 
Micropython好像写起来比较省事啊

点评

当然,这就是python语言的优点  详情 回复 发表于 2017-4-26 18:15
个人签名

希望做一些大家觉得好用的东西!

 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(中级)

11
 
sms      我看看
 
 
 

回复

1万

帖子

25

TA的资源

版主

12
 
xutong 发表于 2017-4-26 11:04
Micropython好像写起来比较省事啊

当然,这就是python语言的优点
 
 
 

回复

994

帖子

3

TA的资源

一粒金砂(高级)

13
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

14
 
谢谢分享!!!!!!!
 
 
 

回复

34

帖子

1

TA的资源

一粒金砂(初级)

15
 
学习一下
 
 
 

回复

3

帖子

2

TA的资源

一粒金砂(初级)

16
 
谢谢分享
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

17
 
赞赞 支持。。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

18
 
看看
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

19
 
感谢楼主
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

20
 
正好学习学习
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表