树莓派使用WiringPi库和硬件IIC驱动OLED屏幕
文章目录
一、0.96寸OLED屏幕介绍
OLED,即有机发光二极管( Organic Light Emitting Diode )。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。
本文采用的是4针的0.96寸OLED显示进行讲解,采用的是IIC协议,速度会比采用SPI协议的慢一点,但这两者的显示驱动都一样,本质上没有太大差别。屏幕整体分辨率为128*64,有黄蓝、白、蓝三种颜色可选,驱动芯片为SSD1306,下面是引脚功能介绍。
名称 | 注释 |
---|---|
GND | 接地 |
VCC | 3.3-5v |
SCL | 时钟线 |
SDA | 数据线 |
二、树莓派的IIC接口
2.1 树莓派的两组IIC接口:
树莓派3B有两组IIC接口,我们用的是第一组IIC接口,也就是树莓派3脚的SDA接到OLED屏幕的SDA,树莓派5脚的SCL接到OLED屏幕的SCL。
2.2 开启树莓派的IIC接口:
sudo raspi-config
执行完指令之后会进入下面界面,键盘方向键选择:Interfacing Options,然后按下回车
然后还是选择第5个:I2C,按下回车继续
这里出现:你希望启用IIC接口吗?选择Yes
然后这里会提示:ARM I2C接口已开启,选择OK
配置完成之后,我们重启树莓派,重启完成之后进入到我们的/dev目录下,查看是否有I2C的驱动文件:
我们用的是I2C-1,Linux一切皆文件,每个硬件设备“对应”一个文件,由驱动程序提供映射
2.3 检查挂载在I2C的设备:
- 开始测试I2C,首先安装i2c-tools:
sudo apt-get install i2c-tools
- 列出连接到I2C总线的设备的地址:
gpio i2cdetect
三、树莓派与OLED屏幕硬件接线
四、WiringPi库的I2C函数
#include <wiringPi.h>
#include <wiringPiI2C.h>
int wiringPiI2CSetup (int devId);//初始化wiringPi库i2c,devId是i2c设备地址,返回值是linux的文件描述符
int wiringPiI2CRead (int fd);//直接读取数据,fd是wiringPiI2CSetup函数的返回值,返回值是读到的数据
int wiringPiI2CWrite (int fd, int data);//直接写数据,fd同上,data是写入的数据
int wiringPiI2CWriteReg8 (int fd, int reg, int data);<