一般情况下MCU 的I2C 器件都是作为主机和从机通讯,在RT-Thread 中将I2C 主机虚拟为I2C 总线设备,I2C 从机通过I2C 设备接口和I2C 总线通讯,相关接口如下所示: 函数 描述 rt_device_find() 根据I2C 总线设备名称查找设备获取设备句柄 rt_i2c_transfer() 传输数据 五、查找i2c总线设备 在使用I2C 总线设备前需要根...
一般情况下MCU 的I2C 器件都是作为主机和从机通讯,在RT-Thread 中将I2C 主机虚拟为I2C 总线设备,I2C 从机通过I2C 设备接口和I2C 总线通讯,相关接口如下所示: 函数 描述 rt_device_find() 根据I2C 总线设备名称查找设备获取设备句柄 rt_i2c_transfer() 传输数据 五、查找i2c总线设备 在使用I2C 总线设备前需要根...
/** 程序清单: 这是一个 I2C 设备使用例程* 例程导出了 i2c_aht10_sample 命令到控制终端* 命令调用格式:i2c_aht10_sample i2c1* 命令解释: 命令第二个参数是要使用的I2C总 线设备名称, 为空则使用默认的I2C总 线设备* 程序功能: 通过 I2C 设备读取温湿度传感器 aht10 的温湿度数据并打印*/#include<rt...
rt_i2c_master_send(ist8310_i2c_bus, IST8310_ADDR, RT_I2C_WR, &read_addr, 1); //读取到的内容存入buf rt_i2c_master_recv(ist8310_i2c_bus, IST8310_ADDR, RT_I2C_RD, buf, len); //地址读数据 } 这样看完大家应该对于i2c的通信方式更加熟悉了。 下面介绍的是读取磁力计值函数ist8310_read_m...
RT-Thread I2C设备驱动的核心API是rt_i2c_transfer(),它传递的消息是链式结构的。可以通过消息链,实现调用一次完成多次数据的收发,此函数既可以用于发送数据,也可以用于接收数据。 函数原型: rt_size_t rt_i2c_transfer(struct rt_i2c_bus_device *bus, struct rt_i2c_msg msgs[], rt_uint32_t num) ...
i2c_core.c中实现IIC总线设备注册,以及使用IIC总线进行数据传输,如:rt_i2c_transfer(),rt_i2c_master_send(),rt_i2c_master_recv()。 rt_err_t rt_i2c_bus_device_register(struct rt_i2c_bus_device *bus, constchar*bus_name) { rt_err_t res = RT_EOK; ...
.scl=BSP_I2C1_SCL_PIN, \ .sda=BSP_I2C1_SDA_PIN, \ .bus_name="i2c1", \ }#endif 这样使用时就可以通过 "i2c1" 来控制从设备了 I2C传输功能源码分析 rt_i2c_transfer -> i2c_bit_xfer staticrt_size_t i2c_bit_xfer(structrt_i2c_bus_device *bus,structrt_i2c_msg msgs[], ...
i2c_bus=(structrt_i2c_bus_device*)rt_device_find(name); 1. 2. 3. 4. 六、数据传输 获取到I2C 总线设备句柄就可以使用rt_i2c_transfer() 进行数据传输。函数原型如下所示: AI检测代码解析 rt_size_trt_i2c_transfer(structrt_i2c_bus_device*bus, ...
使用i2c读取BMP280温湿度计。使用rt_i2c_transfer来读取和写入数据到传感器芯片。这里的温湿度驱动是我自己实现的。 #include<rtthread.h>#include<rtdevice.h>#include<stdio.h>#include"bme280_i2c.h"#defineBMP280_I2C_BUS_NAME"i2c1"#defineBME280_ADDR 0X76staticstructrt_i2c_bus_device*i2c_bus=RT_NUL...
使用rt_i2c_transfer()即可以发送数据也可以接收数据,如果主机只发送数据可以使用rt_i2c_master_send(),如果主机只接收数据可以使用rt_i2c_master_recv()。 接下来本章将详细讲解I2C设备驱动接口的使用。 4.1 查找设备 应用程序要使用已经由操作系统管理的I2C设备需要调用查找设备函数,找到I2C设备后才可以对该设备进行...