树莓派i2c oled c语言,树莓派3B使用I2C接口SSD1306 OLED屏幕

之前用的是SPI接口的SSD1306,有7个针脚,前文:树莓派SSD1306屏幕180度旋转

后来被我不小心折了一下屏幕排线,断了……于是就又买了给I2C接口的SSD1306,4针脚

具体怎么玩,教程比较多,有些地方总结一下。

一、安装

sudo apt-get install -y i2c-tools

VCC\GND\SCL\SDA分别对应树莓派GPIO的1\6\5\3接口,raspi-config 里打开I2C开关,执行检测

sudo i2cdetect -y 1

722910746f0b50e057343239875fcf68.gif

在0x3C处有输出,说明接线OK。

二、驱动

git clone https://github.com/rm-hull/luma.oled.git

cd luma.oled

python setup.py install

三、测试

git clone https://github.com/rm-hull/luma.examples.git

cd luma.examples/examples/

python demo.py

四、上手

在前文 树莓派SSD1306屏幕180度旋转 中,因为我的屏幕要旋转180度,代码大概如下:

from luma.core.interface.serial import i2c

from luma.core.render import canvas

from luma.oled.device import ssd1306, ssd1325, ssd1331, sh1106

serial = i2c(port=1, address=0x3C)

#rotate参数,整数值,可选0(默认)、1、2、3

#其中0为无旋转,1为顺时针旋转90°,2为180°,3为270°

device = ssd1306(serial, rotate=2)

……

另外其默认调用是,执行完毕后清除当前屏幕内容

如果需要执行完毕代码,并保留内容的话,需要重新定义 cleanup 方法

from luma.core.interface.serial import i2c

from luma.core.render import canvas

from luma.oled.device import ssd1306, ssd1325, ssd1331, sh1106

serial = i2c(port=1, address=0x3C)

device = ssd1306(serial, rotate=2)

#定义cleanup为空,覆盖原方法,可保留内容

device.cleanup = ""

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值