|
WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
|
结构体 | |
| struct | i2c_data |
| I2C发送/接收数据结构定义。 更多... | |
| struct | i2c_wait_condition |
| I2C发送/接收等待条件数据结构定义。 更多... | |
类型定义 | |
| typedef struct i2c_data | i2c_data_t |
| I2C发送/接收数据结构定义。 | |
| typedef struct i2c_wait_condition | i2c_wait_condition_t |
| I2C发送/接收等待条件数据结构定义。 | |
| typedef void(* | i2c_irq_callback_t) (i2c_bus_t bus, uint8_t event) |
| i2c中断事件的回调函数,通过 uapi_i2c_register_irq_callback 注册到驱动中。 | |
枚举 | |
| enum | i2c_irq_event_t { I2C_IRQ_EVT_RX_DONE , I2C_IRQ_EVT_TX_DONE , I2C_IRQ_EVT_I2C_BUSY , I2C_IRQ_EVT_I2C_ERR } |
| I2C中断事件枚举。 更多... | |
函数 | |
| errcode_t | uapi_i2c_master_init (i2c_bus_t bus, uint32_t baudrate, uint8_t hscode) |
| 根据指定的参数初始化该I2C为主机。 | |
| errcode_t | uapi_i2c_master_write (i2c_bus_t bus, uint16_t dev_addr, i2c_data_t *data) |
| 将数据从主机写入到从机。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_i2c_master_read (i2c_bus_t bus, uint16_t dev_addr, i2c_data_t *data) |
| 主机接收来自目标I2C从机的数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_i2c_master_writeread (i2c_bus_t bus, uint16_t dev_addr, i2c_data_t *data) |
| 主机发送数据到目标I2C从机,并接收来自此从机的数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_i2c_slave_init (i2c_bus_t bus, uint32_t baudrate, uint16_t addr) |
| 根据指定的参数初始化该I2C为从机。 | |
| errcode_t | uapi_i2c_slave_write (i2c_bus_t bus, i2c_data_t *data) |
| 从机将数据发送给主机。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_i2c_slave_read (i2c_bus_t bus, i2c_data_t *data) |
| 从机从主机读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_i2c_set_irq_mode (i2c_bus_t bus, bool irq_en) |
| 设置是否使用中断模式传输数据。 | |
| errcode_t | uapi_i2c_register_irq_callback (i2c_bus_t bus, i2c_irq_callback_t callback) |
| 注册I2C中断事件回调函数。 | |
| errcode_t | uapi_i2c_unregister_irq_callback (i2c_bus_t bus) |
| 取消注册I2C中断事件回调函数。 | |
| errcode_t | uapi_i2c_set_dma_mode (i2c_bus_t bus, bool en) |
| 使能/去使能DMA模式下I2C传输。 | |
| errcode_t | uapi_i2c_deinit (i2c_bus_t bus) |
| 去初始化I2C,支持主从机。 | |
| errcode_t | uapi_i2c_set_baudrate (i2c_bus_t bus, uint32_t baudrate) |
| 对已初始化的I2C重置波特率,支持主从机。 | |
Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.
Description: Provides I2C driver api
History:
2022-06-01, Create file.
| typedef struct i2c_data i2c_data_t |
I2C发送/接收数据结构定义。
| typedef void(* i2c_irq_callback_t) (i2c_bus_t bus, uint8_t event) |
i2c中断事件的回调函数,通过 uapi_i2c_register_irq_callback 注册到驱动中。
| typedef struct i2c_wait_condition i2c_wait_condition_t |
I2C发送/接收等待条件数据结构定义。
| enum i2c_irq_event_t |
根据指定的参数初始化该I2C为主机。
| errcode_t uapi_i2c_master_read | ( | i2c_bus_t | bus, |
| uint16_t | dev_addr, | ||
| i2c_data_t * | data | ||
| ) |
主机接收来自目标I2C从机的数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考I2C KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | I2C总线,参考 i2c_bus_t 。 |
| [in] | dev_addr | 主机接收数据的目标从机地址。 |
| [in] | data | 接收数据的信息指针,参考 i2c_data_t 。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |
| errcode_t uapi_i2c_master_write | ( | i2c_bus_t | bus, |
| uint16_t | dev_addr, | ||
| i2c_data_t * | data | ||
| ) |
将数据从主机写入到从机。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考I2C KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | I2C总线,参考 i2c_bus_t 。 |
| [in] | dev_addr | 主机发送数据的目标从机地址。 |
| [in] | data | 发送数据的信息指针,参考 i2c_data_t 。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |
| errcode_t uapi_i2c_master_writeread | ( | i2c_bus_t | bus, |
| uint16_t | dev_addr, | ||
| i2c_data_t * | data | ||
| ) |
主机发送数据到目标I2C从机,并接收来自此从机的数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考I2C KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | I2C总线,参考 i2c_bus_t 。 |
| [in] | dev_addr | 主机接收数据的目标从机地址。 |
| [in] | data | 接收数据的信息指针,参考 i2c_data_t 。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |
| errcode_t uapi_i2c_register_irq_callback | ( | i2c_bus_t | bus, |
| i2c_irq_callback_t | callback | ||
| ) |
注册I2C中断事件回调函数。
根据指定的参数初始化该I2C为从机。
| errcode_t uapi_i2c_slave_read | ( | i2c_bus_t | bus, |
| i2c_data_t * | data | ||
| ) |
从机从主机读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考I2C KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | I2C总线,参考 i2c_bus_t 。 |
| [in] | data | 接收数据的信息指针,参考 i2c_data_t 。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |
| errcode_t uapi_i2c_slave_write | ( | i2c_bus_t | bus, |
| i2c_data_t * | data | ||
| ) |
从机将数据发送给主机。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考I2C KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | I2C总线,参考 i2c_bus_t 。 |
| [in] | data | 发送数据的信息指针,参考 i2c_data_t 。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |