XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_hal_i2c.h 文件参考

xf_hal 的 i2c(同步半双工串行通信总线) 设备抽象。 更多...

#include "xf_hal_device_config.h"
#include "xf_hal_gpio.h"
xf_hal_i2c.h 的引用(Include)关系图:

浏览源代码.

结构体

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 设置的参数。
 

枚举

enum  _xf_hal_i2c_address_width_t { _XF_HAL_I2C_ADDRESS_WIDTH_BASE = 0 , XF_HAL_I2C_ADDRESS_WIDTH_7BIT = _XF_HAL_I2C_ADDRESS_WIDTH_BASE , XF_HAL_I2C_ADDRESS_WIDTH_10BIT , _XF_HAL_I2C_ADDRESS_WIDTH_MAX }
 i2c 从机地址宽度。 更多...
 
enum  _xf_hal_i2c_hosts_t { _XF_HAL_I2C_HOSTS_BASE = 0 , XF_HAL_I2C_HOSTS_MASTER = _XF_HAL_I2C_HOSTS_BASE , XF_HAL_I2C_HOSTS_SLAVE , _XF_HAL_I2C_HOSTS_MAX }
 i2c 主从模式。 更多...
 
enum  _xf_hal_i2c_mem_addr_en_t { _XF_HAL_I2C_MEM_ADDR_BASE = 0 , XF_HAL_I2C_MEM_ADDR_DISABLE = _XF_HAL_I2C_MEM_ADDR_BASE , XF_HAL_I2C_MEM_ADDR_ENABLE , _XF_HAL_I2C_MEM_ADDR_MAX }
 i2c 从机内存地址是否启用。 更多...
 
enum  _xf_hal_i2c_mem_addr_width_t {
  _XF_HAL_I2C_MEM_ADDR_WIDTH_BASE = 0 , XF_HAL_I2C_MEM_ADDR_WIDTH_8BIT = _XF_HAL_I2C_MEM_ADDR_WIDTH_BASE , XF_HAL_I2C_MEM_ADDR_WIDTH_16BIT , XF_HAL_I2C_MEM_ADDR_WIDTH_24BIT ,
  XF_HAL_I2C_MEM_ADDR_WIDTH_32BIT , _XF_HAL_I2C_MEM_ADDR_WIDTH_MAX
}
 i2c 从机内存地址宽度。 更多...
 
enum  _xf_hal_i2c_cmd_t {
  XF_HAL_I2C_CMD_DEFAULT = 0x0 , XF_HAL_I2C_CMD_HOSTS = 0x1 << 0 , XF_HAL_I2C_CMD_ENABLE = 0x1 << 1 , XF_HAL_I2C_CMD_ADDRESS_WIDTH = 0x1 << 2 ,
  XF_HAL_I2C_CMD_ADDRESS = 0x1 << 3 , XF_HAL_I2C_CMD_MEM_ADDR_EN = 0x1 << 4 , XF_HAL_I2C_CMD_MEM_ADDR_WIDTH = 0x1 << 5 , XF_HAL_I2C_CMD_MEM_ADDR = 0x1 << 6 ,
  XF_HAL_I2C_CMD_SPEED = 0x1 << 7 , XF_HAL_I2C_CMD_TIMEOUT = 0x1 << 8 , XF_HAL_I2C_CMD_SCL_NUM = 0x1 << 9 , XF_HAL_I2C_CMD_SDA_NUM = 0x1 << 10 ,
  XF_HAL_I2C_CMD_ALL = 0x7FFFFFFF
}
 对移植者,用于对接 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 读取数据。
 

详细描述

xf_hal 的 i2c(同步半双工串行通信总线) 设备抽象。

作者
cangyu (sky.k.nosp@m.irto.nosp@m.@qq.c.nosp@m.om)
版本
0.1
日期
2024-05-16

在文件 xf_hal_i2c.h 中定义.