香蕉派 I2C点亮OLED

本文记录了在Ubuntu 16.04.3 LTS系统上的香蕉派使用I2C驱动0.91寸OLED屏幕的过程。首先测试了香蕉派的IIC通信,然后通过逻辑分析仪确定了有效的I2C接口。在遇到OLED屏幕无响应的问题时,发现需要将7位地址左移一位,即使用0x3C作为地址,而非0x78。解决这个问题后,成功实现了OLED屏幕的通信和点亮。
摘要由CSDN通过智能技术生成

香蕉派 I2C点亮OLED

最近比赛项目需要在香蕉派上利用oled显示收到的数据,于是淘宝买了一块0.91寸、IIC驱动的oled屏幕,然而店家只提供了一份51单片机的驱动程序,需要自己移植到香蕉派上,踩了一些小坑,记录一波。

实验器材:

  1. 一块BPI M64的板子,系统为Ubuntu 16.04.3 LTS
  2. 0.91寸OLED模块,控制芯片为SSD1306
  3. 逻辑分析仪

实验步骤

  1. 首先测试香蕉派的IIC通信是否正常,系统dev目录下已有两个设备i2c-0、i2c-1。只需要写用户态的程序就可以了,查看M64的管脚图可以看到确实有两个,一个在3、5脚;一个在27、28脚。
    BPI M64管脚图
    那么只有分别尝试一下了,利用逻辑分析仪查看那个管脚有波形就可以了,不赘述。这里发现对i2c-1写入时3、5脚有波形,看来这两个是对应的。程序如下:

	int fd = open("/dev/i2c-1", O_RDWR);
	if (fd < 0)
	{
		printf("i2c open failed\n");
		return -1;
	}
	struct i2c_rdwr_ioctl_data data;
	data.msgs = (struct i2c_msg *)malloc(2 * sizeof(struct i2c_msg));
	uint8_t sendbuf[sizeof(uin
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值