16#if XF_HAL_I2C_IS_ENABLE 
   18#include "../kernel/xf_hal_dev.h" 
   23#define XF_HAL_I2C_TYPE XF_HAL_I2C 
   40#define XF_HAL_I2C_CHECK(condition, retval,  format, ...) \ 
   41    XF_CHECK(condition, retval, TAG, format, ##__VA_ARGS__) 
 
   60#if XF_HAL_LOCK_IS_ENABLE 
   67#if XF_HAL_LOCK_IS_ENABLE 
 
  101#if XF_HAL_LOCK_IS_ENABLE 
  107#if XF_HAL_LOCK_IS_ENABLE 
 
  126#if XF_HAL_LOCK_IS_ENABLE 
  132#if XF_HAL_LOCK_IS_ENABLE 
 
  151#if XF_HAL_LOCK_IS_ENABLE 
  158#if XF_HAL_LOCK_IS_ENABLE 
 
  178#if XF_HAL_LOCK_IS_ENABLE 
  184#if XF_HAL_LOCK_IS_ENABLE 
 
  203#if XF_HAL_LOCK_IS_ENABLE 
  209#if XF_HAL_LOCK_IS_ENABLE 
 
  228#if XF_HAL_LOCK_IS_ENABLE 
  234#if XF_HAL_LOCK_IS_ENABLE 
 
  257#if XF_HAL_LOCK_IS_ENABLE 
  265#if XF_HAL_LOCK_IS_ENABLE 
 
  292#if XF_HAL_LOCK_IS_ENABLE 
  300#if XF_HAL_LOCK_IS_ENABLE 
 
  326#if XF_HAL_LOCK_IS_ENABLE 
  333#if XF_HAL_LOCK_IS_ENABLE 
 
  358#if XF_HAL_LOCK_IS_ENABLE 
  365#if XF_HAL_LOCK_IS_ENABLE 
 
uint32_t xf_gpio_num_t
gpio 序号。
 
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(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_width)
i2c 设置 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_disable(xf_i2c_num_t i2c_num)
i2c 禁用函数。
 
xf_err_t xf_hal_i2c_deinit(xf_i2c_num_t i2c_num)
i2c 反初始化函数,恢复到未初始化状态且回收相关资源。
 
enum _xf_hal_i2c_hosts_t xf_hal_i2c_hosts_t
i2c 主从模式。
 
enum _xf_hal_i2c_address_width_t xf_hal_i2c_address_width_t
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 指定从机内存写入。
 
enum _xf_hal_i2c_mem_addr_width_t xf_hal_i2c_mem_addr_width_t
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_err_t xf_hal_i2c_set_address_width(xf_i2c_num_t i2c_num, xf_hal_i2c_address_width_t address_width)
i2c 设置地址宽度。
 
uint32_t xf_i2c_num_t
i2c 序号。
 
xf_err_t xf_hal_i2c_enable(xf_i2c_num_t i2c_num)
i2c 启用函数。i2c 配置好功能后,可以调用 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 指定从机内存读取。
 
@ XF_HAL_I2C_CMD_MEM_ADDR_WIDTH
 
@ XF_HAL_I2C_CMD_ADDRESS_WIDTH
 
@ XF_HAL_I2C_CMD_MEM_ADDR
 
@ XF_HAL_I2C_CMD_MEM_ADDR_EN
 
#define XF_ASSERT(condition, retval, tag, format,...)
xfusion 断言宏(条件 不成立 时则输出日志后返回)。
 
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
 
int xf_lock_unlock(xf_lock_t lock)
解锁.
 
int xf_lock_lock(xf_lock_t lock)
锁定直至成功.
 
xf_hal_i2c_config_t config
 
xf_err_t xf_hal_driver_close(xf_hal_dev_t *dev)
 
int xf_hal_driver_read(xf_hal_dev_t *dev, void *buf, size_t count)
 
xf_err_t xf_hal_driver_ioctl(xf_hal_dev_t *dev, uint32_t cmd, void *config)
 
xf_err_t xf_hal_driver_open(xf_hal_dev_t *dev, xf_hal_type_t type, uint32_t id)
 
int xf_hal_driver_write(xf_hal_dev_t *dev, const void *buf, size_t count)
 
xf_hal_dev_t * xf_hal_device_find(xf_hal_type_t type, uint32_t id)
 
xf_err_t xf_hal_driver_register(xf_hal_type_t type, xf_hal_flag_t flag, xf_hal_dev_create_t constructor, const xf_driver_ops_t *driver_ops)
 
xf_hal_dev_t * xf_hal_driver_create(xf_hal_type_t type, uint32_t id)
 
#define XF_HAL_I2C_CHECK(condition, retval, format,...)
 
struct _xf_hal_i2c_t xf_hal_i2c_t
 
static xf_hal_dev_t * i2c_constructor(xf_i2c_num_t i2c_num)
 
xf_err_t xf_hal_i2c_register(const xf_driver_ops_t *driver_ops)
i2c 设备注册。
 
xf_hal 的 i2c(同步半双工串行通信总线) 设备抽象。
 
#define XF_LOGE(tag, format,...)