跳到主要内容

I2C 接口

接口介绍

I2C(Inter-Integrated Circuit,集成电路总线)接口提供一种高效、低成本的双线式串行通信方式,通过时钟线(SCL)和数据线(SDA)实现主控芯片与多个外部设备之间的数据交互。该接口支持多设备挂载,具有连接简单、占用引脚少、扩展能力强等特点,广泛应用于传感器、EEPROM、显示模块及各类低速外设通信场景。

案例目标

通过 I2C 接口控制屏幕显示。

设备清单

  • RDK X5 开发板

  • 母对母杜邦线

  • I2C OLED 屏幕

硬件连接

连接示意图

接口说明

OLED 屏幕接口板端接口号功能说明
VCC1电源
GND39
SDA3I2C 数据
SCL5I2C 时钟

40PIN 管脚定义

40PIN 管脚定义

案例代码

安装依赖

# 安装功能包
pip install luma.oled

创建 i2c_display.py 文件

创建 i2c_display.py 文件,在 i2c_display.py 文件中粘贴以下代码:

#!/usr/bin/env python3

import time

from luma.core.interface.serial import i2c
from luma.oled.device import ssd1306
from PIL import Image, ImageDraw, ImageFont

# 初始化 I2C OLED
serial = i2c(port=5, address=0x3C)
device = ssd1306(serial)
font = ImageFont.load_default()

while True:
image = Image.new("1", (128, 64))
draw = ImageDraw.Draw(image)

draw.text((0, 0), "RDK X5", font=font, fill=255)
draw.text((0, 18), "I2C OLED Demo", font=font, fill=255)
draw.text((0, 36), time.strftime("%H:%M:%S"), font=font, fill=255)

device.display(image)

time.sleep(1)

运行案例

使用以下命令运行案例代码:

python3 i2c_display.py

运行后屏幕显示字样以及时间。