CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!
无匹配项 共计114个匹配页面

I2C驱动的结构体

i2c_init_t

I2C驱动的初始化结构体i2c_init_t的定义如下:

表 243 i2c_init_t结构体
数据域 域段描述 取值

uint32_t speed

数据传输速度。

该参数的取值可以是下列值中的任意一个:

  • I2C_SPEED_100K(100 Kb/s)
  • I2C_SPEED_400K(400 Kb/s)
  • I2C_SPEED_1000K(1000 Kb/s)
  • I2C_SPEED_2000K(2.0 Mb/s)

uint32_t own_address

本机设备地址。

7位地址:0x08 ~ 0x77

10位地址:0x008 ~ 0x077, 0x080 ~ 0x3FE

uint32_t addressing_mode

本机设备地址及对端设备地址的格式。

该参数的取值可以是下列值中的任意一个:

  • I2C_ADDRESSINGMODE_7BIT(7位地址)
  • I2C_ADDRESSINGMODE_10BIT(10位地址)

uint32_t general_call_mode

是否启用广播地址监测功能。

该参数的取值可以是下列值中的任意一个:

  • I2C_GENERALCALL_DISABLE(禁用)
  • I2C_GENERALCALL_ENABLE(启用)

i2c_handle_t

I2C驱动的句柄结构体i2c_handle_t的定义如下:

表 244 i2c_handle_t结构体
数据域 域段描述 取值

i2c_regs_t *p_instance

I2C外设实例。

该参数的取值可以是下列值中的任意一个:

  • I2C0
  • I2C1

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运行状态(无需开发者初始化)。

该参数的取值可以是下列值中的任意一个:

  • HAL_I2C_STATE_RESET(未初始化)
  • HAL_I2C_STATE_READY(已初始化且空闲)
  • HAL_I2C_STATE_BUSY(忙)
  • HAL_I2C_STATE_BUSY_TX(正在发送)
  • HAL_I2C_STATE_BUSY_RX (正在接收)
  • HAL_I2C_STATE_ABORT(中止)
  • HAL_I2C_STATE_TIMEOUT(超时)
  • HAL_I2C_STATE_ERROR(错误)

__IO hal_i2c_mode_t mode

I2C工作模式(驱动负责管理,无需开发者初始化)。

N/A

__IO uint32_t error_code

I2C错误码(无需开发者初始化)。

该参数的取值可以是下列值中的任意一个:

  • HAL_I2C_ERROR_NONE(无错误)
  • HAL_I2C_ERROR_ARB_LOST(仲裁丢失)
  • HAL_I2C_ERROR_NOACK(无ACK)
  • HAL_I2C_ERROR_OVER(接收溢出)
  • HAL_I2C_ERROR_DMA(DMA传输错误)
  • HAL_I2C_ERROR_TIMEOUT(超时)

uint32_t retention[10]

保存I2C寄存器信息(驱动负责管理,无需开发者初始化)。

N/A。

扫描关注

打开微信,使用“扫一扫”即可关注。