455|0

55

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【匠芯创D133CBS】基于RT-Thread的I2C使用(OLED) [复制链接]

 
 
开发环境:
开发板:D133CBV-QFN88-V1-2 开发板
MCU:D133CBS
D133CBS有3路硬件I2C,但是笔者开发的是软件I2C,默认使用的I2C1的接口,对于应用而言,软件和硬件都是一样的。

1 RT-Thread 的I2C简介

I2C(Inter Integrated Circuit)总线是 PHILIPS 公司开发的一种半双工、双向二线制同步串行总线。I2C 总线传输数据时只需两根信号线,一根是双向数据线 SDA(serial data),另一根是双向时钟线 SCL(serial clock)。
I2C 总线允许同时有多个主设备存在,每个连接到总线上的器件都有唯一的地址,主设备启动数据传输并产生时钟信号,从设备被主设备寻址,同一时刻只允许有一个主设备。如下图所示。
Figure 1-1 I2C 总线
一般情况下 MCU 的 I2C 器件都是作为主机和从机通讯,在 RT-Thread 中将 I2C 主机虚拟为 I2C总线设备,I2C 从机通过 I2C 设备接口和 I2C 总线通讯,相关接口如下所示:
Table 1-1 I2C相关接口
函数 描述
rt_device_find() 根据 I2C 总线设备名称查找设备获取设备句柄
rt_i2c_transfer() 传输数据
关于I2C更详细的内容,请参看官方手册:

2 I2C硬件接口

本文将使用I2C点亮OELD,值得注意的是OLED接口一般有两种:I2C(4线)和SPI(7线或8线)。笔者这里使用的是I2C0。
I2C0的硬件接口如下。
I2C0所用的GPIO对应:PD0->SCL, PD1->SDA

3 I2C使用实例

I2C使用起来很简单。这里的从设备使用OLED。
1.首先根据 I2C 设备名称查找 I2C 名称,获取设备句柄,然后初始化设备。
2.其次就是与设备进行通信。
接下来就是配置相应的驱动。
首先配置软件I2C。
Figure 2-1 I2C配置
使能I2C接口,一般默认即可。
接下来就是配置OLED驱动。
Figure 2-3 配置OLED驱动
笔者这里使用的SSD1306的软件包。
Figure 2-4 SSD1306参数配置
以上参数默认即可,笔者这里还使用了SSD1306的sample。
最后保存更新软件包即可。
编译下载,然后在终端输入“ssd1306_TestAll”即可进行测试。
正常情况下,OLED将会点亮。
完整演示视频如下:
OLED 显示

 
 
点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表