I2C驱动的结构体
i2c_init_t
I2C驱动的初始化结构体i2c_init_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
uint32_t speed |
数据传输速度。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t own_address |
本机设备地址。 |
7位地址:0x08 ~ 0x77 10位地址:0x008 ~ 0x077, 0x080 ~ 0x3FE |
uint32_t addressing_mode |
本机设备地址及对端设备地址的格式。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t general_call_mode |
是否启用广播地址监测功能。 |
该参数的取值可以是下列值中的任意一个:
|
i2c_handle_t
I2C驱动的句柄结构体i2c_handle_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
|
i2c_regs_t *p_instance |
I2C外设实例。 |
该参数的取值可以是下列值中的任意一个:
|
|
i2c_init_t init |
初始化结构体。 |
参考i2c_init_t结构体。 |
|
uint8_t *p_buffer |
指向数据传输缓冲区的指针(驱动负责管理,无需开发者初始化)。 |
N/A |
|
uint16_t xfer_size |
数据传输长度(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO uint16_t xfer_count |
数据传输计数(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO uint16_t master_ack_count |
作为主设备时接收数据的ACK计数(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO uint32_t xfer_options |
顺序传输选项(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO uint32_t previous_state |
上一个通信状态(驱动负责管理,无需开发者初始化)。 |
N/A |
|
hal_status_t(*xfer_isr)(struct _i2c_handle *p_i2c, uint32_t it_source, uint32_t abort_sources) |
数据传输的中断处理函数(驱动负责管理,无需开发者初始化)。 |
N/A |
|
dma_handle_t *p_dmatx |
指向I2C TX通道的DMA句柄的指针。 |
发送通道的DMA句柄dma_handle_t结构体。 |
|
dma_handle_t *p_dmarx |
指向I2C RX通道的 DMA句柄的指针。 |
接收通道的DMA句柄dma_handle_t结构体。 |
|
__IO hal_lock_t lock |
I2C锁(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO hal_i2c_state_t state |
I2C运行状态(无需开发者初始化)。 |
该参数的取值可以是下列值中的任意一个:
|
|
__IO hal_i2c_mode_t mode |
I2C工作模式(驱动负责管理,无需开发者初始化)。 |
N/A |
|
__IO uint32_t error_code |
I2C错误码(无需开发者初始化)。 |
该参数的取值可以是下列值中的任意一个:
|
|
uint32_t retention[10] |
保存I2C寄存器信息(驱动负责管理,无需开发者初始化)。 |
N/A。 |