由于I2C 可以控制多从机的属性,设备驱动模型分为 I2C总线设备(类似与Linux里面的I2C适配器) + I2C从设备; 系统I2C设备驱动主要实现 I2C 总线设备驱动,而具体的I2C 从设备的实现则调用I2C总线设备ops 访问I2C 总线设备 一般情况下 MCU 的 I2C 器件都是作为主机和从机通讯,在 RT-Thread 中将 I2C 主机虚拟为 I2C...
i2c_obj[i].ops.data = (void*)&soft_i2c_config[i]; i2c_obj[i].i2c2_bus.priv = &i2c_obj[i].ops; stm32_i2c_gpio_init(&i2c_obj[i]); /* IO操作函数结构体注册到总线驱动框架 */ result = rt_i2c_bit_add_bus(&i2c_obj[i].i2c2_bus, soft_i2c_config[i].bus_name); RT_ASSERT...
RTThread软件模拟I2C读取实时时钟的方法 rtthread软件模拟i2c,读取实时时钟,发现速度很慢,经过排查终于找到了问题。1、实测,按照默认配置,SCL频率为20Hz,这个很低,所以开始排查2、3、如上图标识位置,当调用 四哥2013112022-10-20 12:04:30 软件模拟I2C从机的实现方法及注意事项 ...
操作系统:RT-Thread v4.0.3 开发平台:RT-Thread Studio 以增加一个软件I2C设备“SI2C1”为例: STEP1)添加组件 STEP2) <drivers\drv_soft_i2c.c> static const struct stm32_soft_i2c_config soft_i2c_config[] = { ... ... #ifdef BSP_USING_SI2C1 //mjf ruanjian I2C SI2C1_BUS_CONFIG, #endif...
本文主要介绍RT-thread中IIC总线设备驱动,涉及到的主要文件有:驱动框架文件(i2c_core.c,i2c_dev.c,i2c-bit-ops.c,i2c_dev.h,i2c.h);底层硬件驱动文件(i2c_soft.c,i2c_soft.h)。这里的i2c_soft.c和i2c_soft.h是指利用MCU的GPIO口模拟IIC总线时序,而不是利用MCU的硬件IIC接口。应用IIC总线设备驱动时,需要...
/USER CODE BEGIN I2C3_MspInit 1/ /USER CODE END I2C3_MspInit 1 */ } 代码编写 首先在RT-ThreadSettings组件中打开I2C设备驱动程序 menuconfig BSP_USING_I2C3 bool "Enable I2C3 BUS (softwaresimulation)" default n select RT_USING_I2C select RT_USING_I2C_BITOPS ...
双击左侧RT-Thread Setting文件,即可打开RT-Thread图形化配置工具,软件模拟I2C这一项是灰色的,表示没有打开,单击一下即可打开软件 I2C 的驱动框架,图标变为彩色表示打开: 右击该选项可以打开更多配置,比如查看该驱动设备的依赖、查看该驱动设备的详细配置,查看该驱动设备的API文档,查看在线文档等操作: ...
本文主要介绍RT-thread中IIC总线设备驱动,涉及到的主要文件有:驱动框架文件(i2c_core.c,i2c_dev.c,i2c-bit-ops.c,i2c_dev.h,i2c.h);底层硬件驱动文件(i2c_soft.c,i2c_soft.h)。这里的i2c_soft.c和i2c_soft.h是指利用MCU的GPIO口模拟IIC总线时序,而不是利用MCU的硬件IIC接口。应用IIC总线设备驱动时,需要...
进入RT-Thread Components ---> Device Drivers菜单,选中 Using I2C device drivers,本示例使用GPIO模拟I2C,因此还要开启 Use GPIO to simulate I2C。 图3.2-1 使用menuconfig开启i2c 退出menuconfig配置界面并保存配置,在env命令行输入scons--target=mdk5-s命令生成mdk5工程,新工程名为project。使用MDK5打开工程,修改...
rt_i2c_bit_add_bus函数的作用就是向rt-thread内核注册i2c设备内核对象,进行统一管理。在进行注册之前...