XFusion API v1.3.0
|
同步半双工串行通信总线。 更多...
结构体 | |
struct | _xf_hal_i2c_config_t |
对移植者,用于对接 i2c 设置的参数。 更多... | |
类型定义 | |
typedef uint32_t | xf_i2c_num_t |
i2c 序号。 | |
typedef enum _xf_hal_i2c_address_width_t | xf_hal_i2c_address_width_t |
i2c 从机地址宽度。 | |
typedef enum _xf_hal_i2c_hosts_t | xf_hal_i2c_hosts_t |
i2c 主从模式。 | |
typedef enum _xf_hal_i2c_mem_addr_en_t | xf_hal_i2c_mem_addr_en_t |
i2c 从机内存地址是否启用。 | |
typedef enum _xf_hal_i2c_mem_addr_width_t | xf_hal_i2c_mem_addr_width_t |
i2c 从机内存地址宽度。 | |
typedef enum _xf_hal_i2c_cmd_t | xf_hal_i2c_cmd_t |
对移植者,用于对接 i2c 指令的命令。 | |
typedef struct _xf_hal_i2c_config_t | xf_hal_i2c_config_t |
对移植者,用于对接 i2c 设置的参数。 | |
函数 | |
xf_err_t | xf_hal_i2c_init (xf_i2c_num_t i2c_num, xf_hal_i2c_hosts_t hosts, uint32_t speed) |
i2c 初始化函数。使用 i2c 之前必须要进行初始化。 | |
xf_err_t | xf_hal_i2c_deinit (xf_i2c_num_t i2c_num) |
i2c 反初始化函数,恢复到未初始化状态且回收相关资源。 | |
xf_err_t | xf_hal_i2c_enable (xf_i2c_num_t i2c_num) |
i2c 启用函数。i2c 配置好功能后,可以调用 i2c 启用函数进行激活。 | |
xf_err_t | xf_hal_i2c_disable (xf_i2c_num_t i2c_num) |
i2c 禁用函数。 | |
xf_err_t | xf_hal_i2c_set_gpio (xf_i2c_num_t i2c_num, xf_gpio_num_t scl_num, xf_gpio_num_t sda_num) |
i2c 设置 gpio。 | |
xf_err_t | xf_hal_i2c_set_address_width (xf_i2c_num_t i2c_num, xf_hal_i2c_address_width_t address_width) |
i2c 设置地址宽度。 | |
xf_err_t | xf_hal_i2c_set_address (xf_i2c_num_t i2c_num, uint16_t address) |
i2c 设置 i2c 从机地址。 | |
xf_err_t | xf_hal_i2c_set_mem_addr_width (xf_i2c_num_t i2c_num, xf_hal_i2c_mem_addr_width_t mem_addr_widths) |
i2c 设置 i2c 内存地址宽度。 | |
int | xf_hal_i2c_write_mem (xf_i2c_num_t i2c_num, uint32_t mem_addr, const uint8_t *buffer, uint32_t size, uint32_t timeout_ms) |
i2c 指定从机内存写入。 | |
int | xf_hal_i2c_read_mem (xf_i2c_num_t i2c_num, uint32_t mem_addr, uint8_t *buffer, uint32_t size, uint32_t timeout_ms) |
i2c 指定从机内存读取。 | |
int | xf_hal_i2c_write (xf_i2c_num_t i2c_num, const uint8_t *buffer, uint32_t size, uint32_t timeout_ms) |
i2c 写入数据。 | |
int | xf_hal_i2c_read (xf_i2c_num_t i2c_num, uint8_t *buffer, uint32_t size, uint32_t timeout_ms) |
i2c 读取数据。 | |
同步半双工串行通信总线。
typedef uint32_t xf_i2c_num_t |
i2c 序号。
在文件 xf_hal_i2c.h 第 43 行定义.
typedef enum _xf_hal_i2c_address_width_t xf_hal_i2c_address_width_t |
i2c 从机地址宽度。
typedef enum _xf_hal_i2c_hosts_t xf_hal_i2c_hosts_t |
i2c 主从模式。
typedef enum _xf_hal_i2c_mem_addr_en_t xf_hal_i2c_mem_addr_en_t |
i2c 从机内存地址是否启用。
typedef enum _xf_hal_i2c_mem_addr_width_t xf_hal_i2c_mem_addr_width_t |
i2c 从机内存地址宽度。
typedef enum _xf_hal_i2c_cmd_t xf_hal_i2c_cmd_t |
对移植者,用于对接 i2c 指令的命令。
typedef struct _xf_hal_i2c_config_t xf_hal_i2c_config_t |
对移植者,用于对接 i2c 设置的参数。
i2c 从机地址宽度。
枚举值 | |
---|---|
_XF_HAL_I2C_ADDRESS_WIDTH_BASE | |
XF_HAL_I2C_ADDRESS_WIDTH_7BIT | 7 位地址宽度 |
XF_HAL_I2C_ADDRESS_WIDTH_10BIT | 10 位地址宽度模式 |
_XF_HAL_I2C_ADDRESS_WIDTH_MAX |
在文件 xf_hal_i2c.h 第 48 行定义.
enum _xf_hal_i2c_hosts_t |
i2c 主从模式。
枚举值 | |
---|---|
_XF_HAL_I2C_HOSTS_BASE | |
XF_HAL_I2C_HOSTS_MASTER | i2c主机模式 |
XF_HAL_I2C_HOSTS_SLAVE | i2c从机模式 |
_XF_HAL_I2C_HOSTS_MAX |
在文件 xf_hal_i2c.h 第 60 行定义.
i2c 从机内存地址是否启用。
枚举值 | |
---|---|
_XF_HAL_I2C_MEM_ADDR_BASE | |
XF_HAL_I2C_MEM_ADDR_DISABLE | i2c 禁用从机内存地址 |
XF_HAL_I2C_MEM_ADDR_ENABLE | i2c 启用从机内存地址 |
_XF_HAL_I2C_MEM_ADDR_MAX |
在文件 xf_hal_i2c.h 第 72 行定义.
i2c 从机内存地址宽度。
在文件 xf_hal_i2c.h 第 84 行定义.
enum _xf_hal_i2c_cmd_t |
对移植者,用于对接 i2c 指令的命令。
枚举值 | |
---|---|
XF_HAL_I2C_CMD_DEFAULT | 默认参数命令,在创建设备时优先执行 |
XF_HAL_I2C_CMD_HOSTS | 主从命令,见 xf_hal_i2c_config_t::hosts |
XF_HAL_I2C_CMD_ENABLE | 启用命令,见 xf_hal_i2c_config_t::enable |
XF_HAL_I2C_CMD_ADDRESS_WIDTH | 地址宽度命令,见 xf_hal_i2c_config_t::address_width |
XF_HAL_I2C_CMD_ADDRESS | 地址命令,见 xf_hal_i2c_config_t::address |
XF_HAL_I2C_CMD_MEM_ADDR_EN | 内存地址启用命令,见 xf_hal_i2c_config_t::mem_addr_en |
XF_HAL_I2C_CMD_MEM_ADDR_WIDTH | 内存地址宽度命令,见 xf_hal_i2c_config_t::mem_addr_width |
XF_HAL_I2C_CMD_MEM_ADDR | 内存地址命令,见 xf_hal_i2c_config_t::mem_addr |
XF_HAL_I2C_CMD_SPEED | 速度命令,见 xf_hal_i2c_config_t::speed |
XF_HAL_I2C_CMD_TIMEOUT | |
XF_HAL_I2C_CMD_SCL_NUM | scl io 命令,见 xf_hal_i2c_config_t::scl_num |
XF_HAL_I2C_CMD_SDA_NUM | sda io 命令,见 xf_hal_i2c_config_t::sda_num |
XF_HAL_I2C_CMD_ALL | 默认设置命令,在创建设备时其次执行 |
在文件 xf_hal_i2c.h 第 98 行定义.
xf_err_t xf_hal_i2c_init | ( | xf_i2c_num_t | i2c_num, |
xf_hal_i2c_hosts_t | hosts, | ||
uint32_t | speed | ||
) |
i2c 初始化函数。使用 i2c 之前必须要进行初始化。
i2c_num | i2c 的序号。 |
hosts | 设置主机或从机。见 xf_hal_i2c_hosts_t. |
speed | i2c 速度。单位 hz |
在文件 xf_hal_i2c.c 第 50 行定义.
xf_err_t xf_hal_i2c_deinit | ( | xf_i2c_num_t | i2c_num | ) |
i2c 反初始化函数,恢复到未初始化状态且回收相关资源。
i2c_num | i2c 的序号。 |
在文件 xf_hal_i2c.c 第 77 行定义.
xf_err_t xf_hal_i2c_enable | ( | xf_i2c_num_t | i2c_num | ) |
i2c 启用函数。i2c 配置好功能后,可以调用 i2c 启用函数进行激活。
i2c_num | i2c 的序号。 |
在文件 xf_hal_i2c.c 第 92 行定义.
xf_err_t xf_hal_i2c_disable | ( | xf_i2c_num_t | i2c_num | ) |
i2c 禁用函数。
如果 i2c 正在启用状态,且不支持动态配置。 则需要该函数先将 i2c 禁用,然后进行配置。再次进行启用。
i2c_num | i2c 的序号。 |
在文件 xf_hal_i2c.c 第 117 行定义.
xf_err_t xf_hal_i2c_set_gpio | ( | xf_i2c_num_t | i2c_num, |
xf_gpio_num_t | scl_num, | ||
xf_gpio_num_t | sda_num | ||
) |
i2c 设置 gpio。
i2c_num | i2c 的序号 |
scl_num | scl 的 io 序号 |
sda_num | sda 的 io 序号 |
在文件 xf_hal_i2c.c 第 142 行定义.
xf_err_t xf_hal_i2c_set_address_width | ( | xf_i2c_num_t | i2c_num, |
xf_hal_i2c_address_width_t | address_width | ||
) |
i2c 设置地址宽度。
i2c_num | i2c 的序号。 |
address_width | 地址宽度。可以设置 7 bit 或者是 10 bit。 见 xf_hal_i2c_address_width_t. |
在文件 xf_hal_i2c.c 第 169 行定义.
xf_err_t xf_hal_i2c_set_address | ( | xf_i2c_num_t | i2c_num, |
uint16_t | address | ||
) |
i2c 设置 i2c 从机地址。
i2c_num | i2c 的序号。 |
address | i2c 地址。需要根据之前设置的宽度填写地址。 |
在文件 xf_hal_i2c.c 第 194 行定义.
xf_err_t xf_hal_i2c_set_mem_addr_width | ( | xf_i2c_num_t | i2c_num, |
xf_hal_i2c_mem_addr_width_t | mem_addr_widths | ||
) |
i2c 设置 i2c 内存地址宽度。
i2c_num | i2c 的序号。 |
mem_addr_widths | 内存地址宽度。 |
在文件 xf_hal_i2c.c 第 219 行定义.
int xf_hal_i2c_write_mem | ( | xf_i2c_num_t | i2c_num, |
uint32_t | mem_addr, | ||
const uint8_t * | buffer, | ||
uint32_t | size, | ||
uint32_t | timeout_ms | ||
) |
i2c 指定从机内存写入。
i2c_num | i2c 的序号。 |
mem_addr | 写入内存地址指针。 |
buffer | 写入数据的指针。 |
size | 写入数据的大小。 |
timeout_ms | 超时时间,单位为 ms(针对有RTOS的底层)。 |
在文件 xf_hal_i2c.c 第 244 行定义.
int xf_hal_i2c_read_mem | ( | xf_i2c_num_t | i2c_num, |
uint32_t | mem_addr, | ||
uint8_t * | buffer, | ||
uint32_t | size, | ||
uint32_t | timeout_ms | ||
) |
i2c 指定从机内存读取。
i2c_num | i2c 的序号。 |
mem_addr | 读取内存地址指针。 |
buffer | 读取的数据指针。 |
size | 读取数据的大小。 |
timeout_ms | 超时时间,单位为 ms(针对有RTOS的底层)。 |
在文件 xf_hal_i2c.c 第 280 行定义.
int xf_hal_i2c_write | ( | xf_i2c_num_t | i2c_num, |
const uint8_t * | buffer, | ||
uint32_t | size, | ||
uint32_t | timeout_ms | ||
) |
i2c 写入数据。
i2c_num | i2c 的序号。 |
buffer | 写入的数据指针。 |
size | 写入数据的大小。 |
timeout_ms | 超时时间,单位为ms(针对有RTOS的底层)。 |
在文件 xf_hal_i2c.c 第 315 行定义.
int xf_hal_i2c_read | ( | xf_i2c_num_t | i2c_num, |
uint8_t * | buffer, | ||
uint32_t | size, | ||
uint32_t | timeout_ms | ||
) |
i2c 读取数据。
i2c_num | i2c 的序号。 |
buffer | 读取的数据指针。 |
size | 读取数据的大小。 |
timeout_ms | 超时时间,单位为ms(针对有RTOS的底层)。 |
在文件 xf_hal_i2c.c 第 347 行定义.