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,...)