drv_hw_i2c层:没有软件I2C的bit_opt层,而是直接对接i2c_core层提供的结构体:struct rt_i2c_bus_device_ops。作者为了简单说明,写了个例子(简单粗暴的例子): 代码语言:javascript 代码运行次数:0 复制 struct rt_i2c_bus_device i2c1_bus;I2C_HandleTypeDef hi2c1;staticrt_err_ti2c_hw_init(void){hi2c1....
struct rt_i2c_msg{rt_uint16_t addr;/* 从机地址(支持7位或10位) */rt_uint16_t flags;/* 读、写标志等 */rt_uint16_t len;/* 读写数据字节数 */rt_uint8_t*buf;/* 读写数据缓冲区指针 */};其中读、写标志flags取值范围如下: #defineRT_I2C_WR0x0000/* 写标志 */#defineRT_I2C_RD(1...
双击左侧RT-Thread Setting文件,即可打开RT-Thread图形化配置工具,软件模拟I2C这一项是灰色的,表示没有打开,单击一下即可打开软件 I2C 的驱动框架,图标变为彩色表示打开: 右击该选项可以打开更多配置,比如查看该驱动设备的依赖、查看该驱动设备的详细配置,查看该驱动设备的API文档,查看在线文档等操作: 按Ctrl+S保存,配...
#if defined(RT_USING_I2C)-#if defined(BSP_USING_HW_I2C3) || defined(BSP_USING_HW_I2C6)+#if defined(BSP_USING_HW_I2C3) || defined(BSP_USING_HW_I2C4) || defined(BSP_USING_HW_I2C6)#include <rtdevice.h> #ifndef I2C3_CONFIG@@ -22,7 +22,16 @@.sda_pin = BSP_I2C3_SD...
可以实现以软件方式将任意GPIO引脚模拟为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[] = ...
一、RT-Thread I2C 总线注册 1.1 I2C 设备使用步骤 1.2 检查问题 二、温湿度传感器软件包 2.1 添加及基本测试 2.2 程序中使用 三、EEPROM软件包 3.1 添加及基本测试 3.2 程序中使用 结语 前言 组件与软件包部分之前文章我们学习了 2 个组件: SFUD组件与 AT组件。 RT-Thread 丰富的生态系统,除了一些标准的组件...
3.2 启用I2C设备驱动 使用env工具命令行进入 rt-thread\bsp\stm32f4xx-HAL 目录,然后输入menuconfig命令进入配置界面。 配置shell使用串口1:选中Using UART1,进入RT-Thread Kernel ---> Kernel Device Object菜单,修改the device name for console为uart1。
然后在此基础上,完成 SHT21 温湿度传感器的 I2C 驱动移植。 本RT-Thread 专栏记录的开发环境: RT-Thread记录(一、RT-Thread 版本、RT-Thread Studio开发环境 及 配合CubeMX开发快速上手) RT-Thread记录(二、RT-Thread内核启动流程 — 启动文件和源码分析 ...
GPIO模拟I2C总线的驱动设计与实现 I2C总线简单方便,是我们经常使用的一种总线。但有时候我们的MCU没有足够多的I2C控制器来实现我们的应用,所幸我可以使用普通的GPIO引脚来模拟低速的I2C总线通信。这一节我们就来实现使用软件通过普通GPIO操作I2C设备的驱动。