提供 I2C 总线与设备的注册、配置与读写接口,支持主从通信模式
更多...
|
struct rt_i2c_bus_device * | rt_i2c_bus_device_find (const char *bus_name) |
| I2C 总线结构体 更多...
|
|
rt_ssize_t | rt_i2c_transfer (struct rt_i2c_bus_device *bus, struct rt_i2c_msg msgs[], rt_uint32_t num) |
| I2C 主机链式数据传输(发送和接收) 更多...
|
|
rt_ssize_t | rt_i2c_master_send (struct rt_i2c_bus_device *bus, rt_uint16_t addr, rt_uint16_t flags, const rt_uint8_t *buf, rt_uint32_t count) |
| I2C 主机发送数据 更多...
|
|
rt_ssize_t | rt_i2c_master_recv (struct rt_i2c_bus_device *bus, rt_uint16_t addr, rt_uint16_t flags, rt_uint8_t *buf, rt_uint32_t count) |
| I2C 主机接收数据 更多...
|
|
rt_err_t | rt_i2c_control (struct rt_i2c_bus_device *bus, int cmd, void *args) |
| 控制 I2C 总线设备 更多...
|
|
提供 I2C 总线与设备的注册、配置与读写接口,支持主从通信模式
◆ rt_i2c_bus_device_find()
struct rt_i2c_bus_device* rt_i2c_bus_device_find |
( |
const char * |
bus_name | ) |
|
I2C 总线结构体
查找指定名称的 I2C 总线设备
此函数通过设备名称查找已注册的 I2C 总线设备,并返回对应的总线结构体指针
- 参数
-
[in] | bus_name | 指向 I2C 总线设备名称字符串的指针 |
- 返回值
-
!RT_NULL | I2C 总线设备指针 |
RT_NULL | 查找失败,未找到对应名称或设备类型不是 I2C 总线 |
◆ rt_i2c_transfer()
rt_ssize_t rt_i2c_transfer |
( |
struct rt_i2c_bus_device * |
bus, |
|
|
struct rt_i2c_msg |
msgs[], |
|
|
rt_uint32_t |
num |
|
) |
| |
I2C 主机链式数据传输(发送和接收)
本函数传递的消息是链式结构,通过指定的 I2C 总线设备 bus
,按照给定的 消息数组 msgs
实现连续数据收发
- 参数
-
[in] | bus | 指向 I2C 总线设备对象的指针 |
[in] | msgs | I2C 消息数组 |
[in] | num | I2C 消息数组数量 |
- 返回值
-
>0 | 成功传输的消息数组的个数 |
-RT_EFULL | 资源已满 |
-RT_EINVAL | 总线不支持传输操作 |
-RT_ERROR | 获取/释放锁失败或底层传输错误 |
-RT_ETIMEOUT | 总线操作超时 |
其他负值 | 传输失败 |
- 警告
-
◆ rt_i2c_master_send()
rt_ssize_t rt_i2c_master_send |
( |
struct rt_i2c_bus_device * |
bus, |
|
|
rt_uint16_t |
addr, |
|
|
rt_uint16_t |
flags, |
|
|
const rt_uint8_t * |
buf, |
|
|
rt_uint32_t |
count |
|
) |
| |
I2C 主机发送数据
向指定从设备发送单次数据包
- 参数
-
[in] | bus | 已初始化的 I2C 总线设备对象指针 |
[in] | addr | I2C 从设备地址 |
[in] | flags | 控制标志位 |
[in] | buf | 指向发送缓冲区的指针 |
[in] | count | 待发送数据大小 |
- 返回值
-
>0 | 实际成功发送的字节数 |
-RT_EFULL | 资源已满 |
-RT_EINVAL | 总线或参数无效 |
-RT_ERROR | 获取/释放锁失败或底层传输错误 |
-RT_ETIMEOUT | 传输超时 |
其他负值 | 发送失败 |
- 警告
-
◆ rt_i2c_master_recv()
rt_ssize_t rt_i2c_master_recv |
( |
struct rt_i2c_bus_device * |
bus, |
|
|
rt_uint16_t |
addr, |
|
|
rt_uint16_t |
flags, |
|
|
rt_uint8_t * |
buf, |
|
|
rt_uint32_t |
count |
|
) |
| |
I2C 主机接收数据
从指定从设备接收单次数据包
- 参数
-
[in] | bus | 指向 I2C 总线设备对象的指针 |
[in] | addr | I2C 从设备地址 |
[in] | flags | 控制标志位 |
[out] | buf | 指向接收缓冲区的指针 |
[in] | count | 期望接收的字节数 |
- 返回值
-
>0 | 实际成功接收的字节数 |
-RT_EFULL | 资源已满 |
-RT_EINVAL | 总线或参数无效 |
-RT_ERROR | 总线锁获取失败或底层传输错误 |
-RT_ETIMEOUT | 接收超时 |
其他负值 | 接收失败 |
- 警告
-
◆ rt_i2c_control()
rt_err_t rt_i2c_control |
( |
struct rt_i2c_bus_device * |
bus, |
|
|
int |
cmd, |
|
|
void * |
args |
|
) |
| |
控制 I2C 总线设备
本函数用于对指定的 I2C 总线设备执行控制命令。可用于设备参数配置、扩展操作等
- 参数
-
[in] | bus | 指向 I2C 总线设备对象的指针 |
[in] | cmd | 控制命令编号 |
[in] | args | 控制命令参数指针,类型由具体命令决定 |
- 返回值
-
RT_EOK | 成功执行控制命令 |
-RT_EINVAL | 总线不支持控制操作 |
其他负值 | 执行控制命令失败,由底层驱动返回 |