Orangepi Zero2 全志H616(OLED屏/IIC协议)

文章介绍了如何在Orangepi上使用IIC接口与OLED显示器进行通信。首先展示了Orangepi的IIC引脚图,然后通过Linux命令检查i2c-3设备节点的存在,并安装i2c-tools进行测试。接着,文章提供了OLED显示的代码实现,包括初始化、显示文本等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Orangepi相关IIC引脚图

1、直接查看下面引脚,图中SDA和SCK接口即为iic接口。

2、在moba工具下用命令查看(命令:gpio readall)

二、oled实例图

三、开发步骤

1、启动 linux 系统后, 先确认下/dev 下存在 i2c-3 的设备节点(命令:ls /dev)

从命令运行结果能观察到系统支持i2c-3和i2c-5的驱动,而 H616 的外设我们看到只有一个IIC接口,用的是i2c-3 ,Linux一切皆文件,每个硬件设备 “ 对应 ” 一个文件,由驱动程序提供映射,因此我们需要安装i2c-tool。

2、开始测试 i2c, 首先安装 i2c-tools

sudo apt-get install i2c-tools

3、i2c地址

sudo i2cdetect -y 3

三、oled代码实现

oled_demo.c(直接参考wiringpi库提供的外设实例代码修改即可)

/*
 * Copyright (c) 2015, Vladimir Komendantskiy
 * MIT License
 *
 * SSD1306 demo of block and font drawing.
 */

//
// fixed for OrangePiZero by HypHop
//

#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 = font1;

        oled_putstrto(disp, 0, 30, "--Mr.zheng Handsome--");
        disp->font = font1;

        oled_send_buffer(disp);

        return 0;
}

void show_error(int err, int add) {
        //const gchar* errmsg;
        //errmsg = g_strerror(errno);
        printf("\nERROR: %i, %i\n\n", err, add);
        //printf("\nERROR\n");
}

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、付费专栏及课程。

余额充值