OLED屏应用-IIC协议

本文介绍了如何在OrangePiZero2上配置和使用IIC接口的OLED屏幕。首先,确认了设备节点i2c-3的存在,然后安装并使用i2c-tools进行检测。接着,展示了OLED屏幕的C语言开发示例,包括显示文本的功能。最后,提供了错误处理和程序使用说明。
摘要由CSDN通过智能技术生成

OLED屏幕

在这里插入图片描述

Orangepi的IIC接口

在这里插入图片描述

  • 由 26pin 的原理图可知, Orange Pi Zero 2 可用的 i2c 为 i2c3
  • 启动 linux 系统后, 先确认下/dev 下存在 i2c-3 的设备节点

从命令运行结果能观察到系统支持I2C-3和I2C-5的驱动,而H616的外设我们看到只有一个IIC接
口,用的是IIC-3
Linux一切皆文件,每个硬件设备“对应”一个文件,由驱动程序提供映射
在这里插入图片描述

  • 开始测试 i2c, 首先安装 i2c-tools
    sudo apt-get install i2c-tools
  • 安装完成后,输入 sudo i2cdetect -y 3
    在这里插入图片描述

OLED屏幕开发

#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdint.h>
#include "oled.h"
#include "font.h"

int oled_show(struct display_info *disp) {
	int i;
	char buf[100];
	oled_putstrto(disp, 0, 9+1, "Welcome to My HomeAssitant");
	disp->font = font2;
	oled_putstrto(disp, 0, 20, " ---hello oled--- ");
	disp->font = font2;
	oled_send_buffer(disp);
	return 0;
}

void show_error(int err, int add) {
	printf("\nERROR: %i, %i\n\n", err, add);
}
void show_usage(char *progname) {
	printf("\nUsage:\n%s <I2C bus device node >\n", progname);
}

int main(int argc, char **argv) {
	int e;
	char filename[32];
	struct display_info disp;
	if (argc < 2) {
	show_usage(argv[0]);
		return -1;
	}
	memset(&disp, 0, sizeof(disp));
	sprintf(filename, "%s", argv[1]);
	disp.address = OLED_I2C_ADDR;
	disp.font = font2;
	e = oled_open(&disp, filename);
	e = oled_init(&disp);
	oled_show(&disp);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值