XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_hal_i2c.h
浏览该文件的文档.
1
12#ifndef __XF_HAL_I2C_H__
13#define __XF_HAL_I2C_H__
14
15/* ==================== [Includes] ========================================== */
16
18
28#if XF_HAL_I2C_IS_ENABLE
29
30#include "xf_hal_gpio.h"
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36/* ==================== [Defines] =========================================== */
37
38/* ==================== [Typedefs] ========================================== */
39
43typedef uint32_t xf_i2c_num_t;
44
56
68
80
94
115
119typedef struct _xf_hal_i2c_config_t {
120 uint32_t hosts : 1;
121 uint32_t enable : 1;
122 uint32_t address_width : 1;
123 uint32_t address : 16;
124 uint32_t mem_addr_en : 1;
125 uint32_t mem_addr_width : 2;
126 uint32_t reserve : 10;
127 uint32_t mem_addr;
128 uint32_t speed;
129 uint32_t timeout_ms;
133
134/* ==================== [Global Prototypes] ================================= */
135
146xf_err_t xf_hal_i2c_init(xf_i2c_num_t i2c_num, xf_hal_i2c_hosts_t hosts, uint32_t speed);
147
158
171
185
200
213
224xf_err_t xf_hal_i2c_set_address(xf_i2c_num_t i2c_num, uint16_t address);
225
237
251int xf_hal_i2c_write_mem(xf_i2c_num_t i2c_num, uint32_t mem_addr, const uint8_t *buffer, uint32_t size,
252 uint32_t timeout_ms);
253
264int 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);
265
275int xf_hal_i2c_write(xf_i2c_num_t i2c_num, const uint8_t *buffer, uint32_t size, uint32_t timeout_ms);
276
286int xf_hal_i2c_read(xf_i2c_num_t i2c_num, uint8_t *buffer, uint32_t size, uint32_t timeout_ms);
287
288/* ==================== [Macros] ============================================ */
289
290#ifdef __cplusplus
291} /* extern "C" */
292#endif
293
294#endif // XF_HAL_I2C_IS_ENABLE
295
301#endif // __XF_HAL_I2C_H__
uint32_t xf_gpio_num_t
gpio 序号。
Definition xf_hal_gpio.h:44
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。
Definition xf_hal_i2c.c:142
struct _xf_hal_i2c_config_t xf_hal_i2c_config_t
对移植者,用于对接 i2c 设置的参数。
_xf_hal_i2c_address_width_t
i2c 从机地址宽度。
Definition xf_hal_i2c.h:48
xf_err_t xf_hal_i2c_set_address(xf_i2c_num_t i2c_num, uint16_t address)
i2c 设置 i2c 从机地址。
Definition 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 内存地址宽度。
Definition xf_hal_i2c.c:219
xf_err_t xf_hal_i2c_init(xf_i2c_num_t i2c_num, xf_hal_i2c_hosts_t hosts, uint32_t speed)
i2c 初始化函数。使用 i2c 之前必须要进行初始化。
Definition xf_hal_i2c.c:50
enum _xf_hal_i2c_mem_addr_en_t xf_hal_i2c_mem_addr_en_t
i2c 从机内存地址是否启用。
enum _xf_hal_i2c_cmd_t xf_hal_i2c_cmd_t
对移植者,用于对接 i2c 指令的命令。
xf_err_t xf_hal_i2c_disable(xf_i2c_num_t i2c_num)
i2c 禁用函数。
Definition xf_hal_i2c.c:117
_xf_hal_i2c_hosts_t
i2c 主从模式。
Definition xf_hal_i2c.h:60
_xf_hal_i2c_cmd_t
对移植者,用于对接 i2c 指令的命令。
Definition xf_hal_i2c.h:98
_xf_hal_i2c_mem_addr_width_t
i2c 从机内存地址宽度。
Definition xf_hal_i2c.h:84
xf_err_t xf_hal_i2c_deinit(xf_i2c_num_t i2c_num)
i2c 反初始化函数,恢复到未初始化状态且回收相关资源。
Definition xf_hal_i2c.c:77
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 从机地址宽度。
_xf_hal_i2c_mem_addr_en_t
i2c 从机内存地址是否启用。
Definition xf_hal_i2c.h:72
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 指定从机内存写入。
Definition xf_hal_i2c.c:244
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 写入数据。
Definition 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 读取数据。
Definition xf_hal_i2c.c:347
xf_err_t xf_hal_i2c_set_address_width(xf_i2c_num_t i2c_num, xf_hal_i2c_address_width_t address_width)
i2c 设置地址宽度。
Definition xf_hal_i2c.c:169
uint32_t xf_i2c_num_t
i2c 序号。
Definition xf_hal_i2c.h:43
xf_err_t xf_hal_i2c_enable(xf_i2c_num_t i2c_num)
i2c 启用函数。i2c 配置好功能后,可以调用 i2c 启用函数进行激活。
Definition xf_hal_i2c.c:92
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 指定从机内存读取。
Definition xf_hal_i2c.c:280
@ _XF_HAL_I2C_ADDRESS_WIDTH_MAX
Definition xf_hal_i2c.h:54
@ _XF_HAL_I2C_ADDRESS_WIDTH_BASE
Definition xf_hal_i2c.h:49
@ XF_HAL_I2C_ADDRESS_WIDTH_10BIT
Definition xf_hal_i2c.h:52
@ XF_HAL_I2C_ADDRESS_WIDTH_7BIT
Definition xf_hal_i2c.h:51
@ _XF_HAL_I2C_HOSTS_BASE
Definition xf_hal_i2c.h:61
@ _XF_HAL_I2C_HOSTS_MAX
Definition xf_hal_i2c.h:66
@ XF_HAL_I2C_HOSTS_SLAVE
Definition xf_hal_i2c.h:64
@ XF_HAL_I2C_HOSTS_MASTER
Definition xf_hal_i2c.h:63
@ XF_HAL_I2C_CMD_SCL_NUM
Definition xf_hal_i2c.h:110
@ XF_HAL_I2C_CMD_SDA_NUM
Definition xf_hal_i2c.h:111
@ XF_HAL_I2C_CMD_TIMEOUT
Definition xf_hal_i2c.h:109
@ XF_HAL_I2C_CMD_ENABLE
Definition xf_hal_i2c.h:102
@ XF_HAL_I2C_CMD_MEM_ADDR_WIDTH
Definition xf_hal_i2c.h:106
@ XF_HAL_I2C_CMD_DEFAULT
Definition xf_hal_i2c.h:99
@ XF_HAL_I2C_CMD_ADDRESS
Definition xf_hal_i2c.h:104
@ XF_HAL_I2C_CMD_ADDRESS_WIDTH
Definition xf_hal_i2c.h:103
@ XF_HAL_I2C_CMD_HOSTS
Definition xf_hal_i2c.h:101
@ XF_HAL_I2C_CMD_MEM_ADDR
Definition xf_hal_i2c.h:107
@ XF_HAL_I2C_CMD_MEM_ADDR_EN
Definition xf_hal_i2c.h:105
@ XF_HAL_I2C_CMD_ALL
Definition xf_hal_i2c.h:113
@ XF_HAL_I2C_CMD_SPEED
Definition xf_hal_i2c.h:108
@ _XF_HAL_I2C_MEM_ADDR_WIDTH_MAX
Definition xf_hal_i2c.h:92
@ _XF_HAL_I2C_MEM_ADDR_WIDTH_BASE
Definition xf_hal_i2c.h:85
@ XF_HAL_I2C_MEM_ADDR_WIDTH_24BIT
Definition xf_hal_i2c.h:89
@ XF_HAL_I2C_MEM_ADDR_WIDTH_32BIT
Definition xf_hal_i2c.h:90
@ XF_HAL_I2C_MEM_ADDR_WIDTH_16BIT
Definition xf_hal_i2c.h:88
@ XF_HAL_I2C_MEM_ADDR_WIDTH_8BIT
Definition xf_hal_i2c.h:87
@ _XF_HAL_I2C_MEM_ADDR_BASE
Definition xf_hal_i2c.h:73
@ _XF_HAL_I2C_MEM_ADDR_MAX
Definition xf_hal_i2c.h:78
@ XF_HAL_I2C_MEM_ADDR_DISABLE
Definition xf_hal_i2c.h:75
@ XF_HAL_I2C_MEM_ADDR_ENABLE
Definition xf_hal_i2c.h:76
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
Definition xf_err.h:69
对移植者,用于对接 i2c 设置的参数。
Definition xf_hal_i2c.h:119
xf_gpio_num_t scl_num
Definition xf_hal_i2c.h:130
xf_gpio_num_t sda_num
Definition xf_hal_i2c.h:131
xf_hal 设备配置(仅 xf_hal device 内部使用)。
xf_hal 的 gpio(通用输入输出) 设备抽象。