I2C

优质
小牛编辑
127浏览
2023-12-01

I2C设备接口

结构体

struct  rt_i2c_msg
 I2C消息 更多...
 
struct  rt_i2c_bus_device_ops
 I2C总线设备的操作方法 更多...
 
struct  rt_i2c_bus_device
 I2C总线设备控制块 更多...
 

宏定义

#define RT_I2C_WR   0x0000
 I2C写标志
 
#define RT_I2C_RD   (1u << 0)
 I2C读标志
 
#define RT_I2C_ADDR_10BIT   (1u << 2)
 10位的设备地址
 
#define RT_I2C_NO_START   (1u << 4)
 无开始条件
 
#define RT_I2C_IGNORE_NACK   (1u << 5)
 忽略NACK
 
#define RT_I2C_NO_READ_ACK   (1u << 6)
 读的时候不发送ACK
 

函数

rt_err_t rt_i2c_bus_device_register (struct rt_i2c_bus_device *bus, const char *bus_name)
 注册I2C 总线设备
 
rt_size_t rt_i2c_transfer (struct rt_i2c_bus_device *bus, struct rt_i2c_msg msgs[], rt_uint32_t num)
 I2C 数据传输
 

详细描述

I2C设备接口

函数说明

rt_err_t rt_i2c_bus_device_register(struct rt_i2c_bus_devicebus,
const char * bus_name 
)

注册I2C 总线设备

本函数用于向系统中注册I2C 总线设备。

参数
busI2C 总线设备句柄
bus_nameI2C 总线设备名称,一般与硬件控制器名称一致,如:“i2c0”
返回
RT_EOK 成功;-RT_ERROR 注册失败,已有其他驱动使用该bus_name注册。
rt_size_t rt_i2c_transfer(struct rt_i2c_bus_devicebus,
struct rt_i2c_msg msgs[],
rt_uint32_t num 
)

I2C 数据传输

该函数传递的消息是链式结构,可以通过消息链,实现调用一次完成多次数据的收发,主机调用此函数可以完成读或者写从设备的操作。

参数
busI2C 总线设备句柄
msgs[]I2C 消息数组
numI2C 消息数组的数量
返回
传输成功则返回成功传输的消息数组的个数;失败则返回其他错误码。
示例:
i2c_aht10_sample.c.