一、i2c协议 由飞利浦公司开发,支持设备间的短距离通信。i2c通信需要的引脚少,硬件实现简单、可扩展性强,被广泛应用在系统内多个集成电路(IC)间的通信。 二、i2c物理层 i2c通信总线可连接多个i2c通信设备,支持多个通信主机和多个通信从机。i2c通信只需要两条双向总线——SDA(串行数据线)和SCL(串行时钟线)。 SDA:...
获取到 I2C 总线设备句柄就可以使用 rt_i2c_transfer() 进行数据传输。函数原型如下所示: rt_size_t rt_i2c_transfer(struct rt_i2c_bus_device *bus, struct rt_i2c_msg msgs[], rt_uint32_t num); 和SPI 总线的自定义传输接口一样,I2C 总线的自定义传输接口传输的数据也是以一个消息为单位。参数 ms...
恩智浦FRDM-MCXA153开发板板载的mikroBUS socket预留一个IIC接口,具体可以从针脚图看到下图红框处的针脚。 NXP MCXA153引入了一个Flexcomm概念,每个Flexcomm接口可通过软件选择作为USART、SPI或I2C接口。此处只需要在menuconfig中选择I2C0即可。 1. 因为FRDM-MCXA153的BSP目前只有pin和Uart的驱动,需要增加drv_i2c.c文...
note “注意事项” RT-Thread I2C 设备接口使用的从机地址均不包含读写位,读写位控制需修改标志flags。 #define RT_I2C_WR 0x0000 /* 写标志*/#define RT_I2C_RD (1u << 0) /* 读标志*/#define RT_I2C_ADDR_10BIT (1u << 2) /* 10 位地址模式*/#define RT_I2C_NO_START (1u << 4) /*...
1、了解rtthread中模拟I2C驱动框架 模拟I2C驱动框架是将I2C的START、STOP、READ、WRITE通过操作GPIO拉高拉低实现的,时钟周期控制则是通过IO翻转附加延时的方式实现,模拟的方式最简单粗暴,但是相对于硬件的方式比较浪费CPU资源。 关于模拟I2C框架中需要实现的操作函数: ...
很多东西都已经有了,我们就不重复造相同的轮子了,直接白嫖过来用。本节,我们将会学习到RT-Thread I2C总线设备的基本使用。 接下来,我们将基于RT-Thread Studio来构建。 2、开始实践 上一节我们已经熟悉了怎么创建工程和配置项目了,这节我们直接略过这两步操作,直接看硬件图。
本文首先描述了RT-Thread I2C设备驱动框架的基本情况,然后详细描述了I2C设备驱动接口,并使用I2C设备驱动接口编写MPU6050的驱动程序,并给出了在正点原子STM32F4探索者开发板上验证的代码示例。 2 I2C设备驱动框架简介 在使用MCU进行项目开发的时候,往往需要用到I2C总线。一般来说,MCU带有I2C控制器(硬件I2C),也可以使用...
I2C(Inter Integrated Circuit)总线是 PHILIPS 公司开发的一种半双工、双向二线制同步串行总线。而我们...
1 RT-Thread 的I2C简介 I2C(Inter Integrated Circuit)总线是 PHILIPS 公司开发的一种半双工、双向二...
硬件I2C则直接对接核心层,提供统一I2C通信接口 dev是提供RTT设备驱动框架的统一的API(实现箭头);RTT在...