开发环境: IDE:RT-Thread Studio 2.2.7 开发板:HPM5300EVK HPM5300EVK有4路硬件I2C,当然也可使用软件I2C,对于应用而言,软件和硬件都是一样的。 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 总线通讯,相关接口如下所示:
关于I2C更详细的内容,请参看官方手册: https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c 2 I2C使用实例I2C使用起来很简单。 1.首先根据 I2C 设备名称查找 I2C 名称,获取设备句柄,然后初始化设备。 2.其次就是与设备进行通信。 使用I2C0,所用的GPIO对应表如下: PB02->SCL, PB03->SDA 电路图对应如下: 本文将使用I2C点亮OELD,值得注意的是OLED接口一般有两种:I2C(4线)和SPI(7线或8线)。笔者这里使用的是I2C。 接下来就是配置相应的驱动。 首先配置软件I2C。 接下来就是配置OLED驱动,笔者这里使用的SSD1306的软件包。 以上参数默认即可,笔者这里还使用了SSD1306的sample。 编译下载,然后在终端输入“ssd1306_TestAll”即可进行测试。 正常情况下,OLED将会点亮。 |
文章评论(0条评论)
登录后参与讨论