NUC980 IoT I2C实践

Posted Bruceoxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NUC980 IoT I2C实践相关的知识,希望对你有一定的参考价值。

开发环境:
IDE:RT-Thread Studio
开发板:NUC980 IoT 开发板

NUC980 IoT有4路硬件I2C,本文将使用I2C2。

3.1 RT-Thread 的I2C简介

I2C(Inter Integrated Circuit)总线是 PHILIPS 公司开发的一种半双工、双向二线制同步串行总线。I2C 总线传输数据时只需两根信号线,一根是双向数据线 SDA(serial data),另一根是双向时钟线 SCL(serial clock)。

I2C 总线允许同时有多个主设备存在,每个连接到总线上的器件都有唯一的地址,主设备启动数据传输并产生时钟信号,从设备被主设备寻址,同一时刻只允许有一个主设备。如下图所示:

一般情况下 MCU 的 I2C 器件都是作为主机和从机通讯,在 RT-Thread 中将 I2C 主机虚拟为 I2C总线设备,I2C 从机通过 I2C 设备接口和 I2C 总线通讯,相关接口如下所示:

函数描述
rt_device_find()根据 I2C 总线设备名称查找设备获取设备句柄
rt_i2c_transfer()传输数据

关于I2C更详细的内容,请参看官方手册:
I2C

3.2 I2C使用实例

I2C使用起来很简单。

1.首先根据 I2C 设备名称查找 I2C 名称,获取设备句柄,然后初始化设备。
2.其次就是与设备进行通信。

I2C2所用的GPIO对应表如下:

PB5->SCL, PB7->SDA

电路图对应如下:

本文将使用I2C点亮OELD,值得注意的是OLED接口一般有两种:I2C(4线)和SPI(7线或8线)。
接下来就是配置相应的驱动。

首先配置I2C。

接下来就是配置OLED驱动。

笔者这里使用的SSD1306的软件包。以上参数默认即可,笔者这里还使用了SSD1306的sample。
最后保存即可,然后更新软件包。

接下来就进行编译。

下载固件到开发板,查看以下信息:

编译下载,然后在终端输入“ssd1306_TestAll”即可进行测试。

正常情况下,OLED将会点亮。



欢迎访问我的网站

BruceOu的哔哩哔哩
BruceOu的主页
BruceOu的博客
BruceOu的CSDN博客
BruceOu的简书
BruceOu的知乎


欢迎订阅我的微信公众号

关注公众号[嵌入式实验楼]获取更多资源

以上是关于NUC980 IoT I2C实践的主要内容,如果未能解决你的问题,请参考以下文章

NUC980 IoT移植 RT-Thread

NUC980 IoT 使用WiFi联网

NUC980开发板DIY项目大挑战:车间数据采集方案

NUC980 使能串口与测试

NUC980开发板DIY项目大挑战串口服务器

NUC980开源项目40-PLC远程下载/内网穿透(非技术)