由 26pin 的原理图可知, Orange Pi Zero 2 可用的 i2c 为 i2c3
启动 linux 系统后, 先确认下/dev 下存在 i2c-3 的设备节点
从命令运行结果能观察到系统支持I2C-3和I2C-5的驱动,而H616的外设我们看到只有一个IIC接 口,用的是IIC-3
Linux一切皆文件,每个硬件设备“对应”一个文件,由驱动程序提供映射
ls /dev/i2c-
开始测试 i2c, 首先安装 i2c-tools
sudo apt-get install i2c-tools
sudo i2cdetect -y 3
使用官方提供的oled_demo.c
cp ../wiringOP/examples/oled_demo.c .
./build.sh oled_demo.c
sudo ./a.out /dev/i2c-3
#include <string.h>
#include <stdio.h>
#include <stdint.h>
#include <font.h>
#include <oled.h>
int oled_show(struct display_info *disp )
{
oled_putstrto(disp,0,9+1,"Welcome to");
disp->font=font1;
oled_putstrto(disp,0,18+2,"----Mr Du ------");
disp->font=font2;
oled_send_buffer(disp);
return 0;
}
int main()
{
struct display_info disp;
memset(&disp,0,sizeof(disp));
disp.address=OLED_I2C_ADDR;
disp.font=font2;
oled_open(&disp,"/dev/i2c-3");
oled_init(&disp);
oled_show(&disp);
return 0;
}