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

SPI驱动的结构体

spi_init_t

SPI驱动的初始化结构体spi_init_t的定义如下:

表 348 spi_init_t结构体
数据域 域段描述 取值

uint32_t direction

传输方向。

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

  • SPI_DIRECTION_SIMPLEX_TX(SPI单工发送)
  • SPI_DIRECTION_SIMPLEX_RX(SPI单工接收)
  • SPI_DIRECTION_READ_EEPROM(SPI读EEPROM)

uint32_t data_size

数据位宽。

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

  • SPI_DATASIZE_4BIT(4位)
  • SPI_DATASIZE_5BIT(5位)
  • SPI_DATASIZE_6BIT(6位)
  • SPI_DATASIZE_7BIT(7位)
  • SPI_DATASIZE_8BIT(8位)
  • SPI_DATASIZE_9BIT(9位)
  • SPI_DATASIZE_10BIT(10位)
  • SPI_DATASIZE_11BIT(11位)
  • SPI_DATASIZE_12BIT(12位)
  • SPI_DATASIZE_13BIT(13位)
  • SPI_DATASIZE_14BIT(14位)
  • SPI_DATASIZE_15BIT(15位)
  • SPI_DATASIZE_16BIT(16位)
  • SPI_DATASIZE_17BIT(17位)
  • SPI_DATASIZE_18BIT(18位)
  • SPI_DATASIZE_19BIT(19位)
  • SPI_DATASIZE_20BIT(20位)
  • SPI_DATASIZE_21BIT(21位)
  • SPI_DATASIZE_22BIT(22位)
  • SPI_DATASIZE_23BIT(23位)
  • SPI_DATASIZE_24BIT(24位)
  • SPI_DATASIZE_25BIT(25位)
  • SPI_DATASIZE_26BIT(26位)
  • SPI_DATASIZE_27BIT(27位)
  • SPI_DATASIZE_28BIT(28位)
  • SPI_DATASIZE_29BIT(29位)
  • SPI_DATASIZE_30BIT(30位)
  • SPI_DATASIZE_31BIT(31位)
  • SPI_DATASIZE_32BIT(32位)

uint32_t clk_polarity

时钟极性。

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

  • SPI_POLARITY_LOW(时钟空闲状态为低电平)
  • SPI_POLARITY_HIGH(时钟空闲状态为高电平)

uint32_t clk_phase

时钟相位。

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

  • SPI_PHASE_1EDGE(在时钟线的第一个跳变处采样数据)
  • SPI_PHASE_2EDGE(在时钟线的第二个跳变处采样数据)

uint32_t baud_rate_prescaler

波特率分频系数。

0x0000 ~ 0xFFFF之间的偶数

SPI传输速率=系统时钟/分频系数

uint32_t ti_mode

是否启用TI模式。

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

  • SPI_TIMODE_DISABLE(禁用TI模式)
  • SPI_TIMODE_ENABLE(启用TI模式)

uint32_t slave_select

从设备选择。

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

  • SPI_SLAVE_SELECT_0(从设备0)
  • SPI_SLAVE_SELECT_1(从设备1)
  • SPI_SLAVE_SELECT_ALL(从设备0和从设备1)

spi_handle_t

SPI驱动的句柄结构体spi_handle_t的定义如下:

表 349 spi_handle_t结构体
数据域 域段描述 取值

ssi_regs_t *p_instance

SPI外设实例

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

  • SPIM
  • SPIS

spi_init_t init

初始化结构体

参考spi_init_t结构体

uint8_t *p_tx_buffer

指向数据发送缓冲区的指针(驱动负责管理,无需开发者初始化)

N/A

__IO uint32_t tx_buffer_size

数据发送长度(驱动负责管理,无需开发者初始化)

N/A

__IO uint32_t tx_xfer_count

数据发送计数(驱动负责管理,无需开发者初始化)

N/A

uint8_t *p_rx_buffer

指向数据接收缓冲区的指针(驱动负责管理,无需开发者初始化)

N/A

__IO uint32_t rx_buffer_size

数据接收长度(驱动负责管理,无需开发者初始化)

N/A

__IO uint32_t rx_xfer_count

数据接收计数(驱动负责管理,无需开发者初始化)

N/A

void (*write_fifo)(struct _spi_handle *p_spi)

指向SPI TX写FIFO函数的指针(驱动负责管理,无需开发者初始化)。

N/A

void (*read_fifo)(struct _spi_handle *p_spi)

指向SPI RX读FIFO函数的指针(驱动负责管理,无需开发者初始化)。

N/A

void (*read_write_fifo)(struct _spi_handle *p_spi)

指向SPI读写FIFO函数的指针(驱动负责管理,无需开发者初始化)。

N/A

dma_handle_t *p_dmatx

指向数据发送通道的DMA句柄的指针

发送通道的DMA句柄dma_handle_t结构体

dma_handle_t *p_dmarx

指向数据接收通道的DMA句柄的指针

接收通道的DMA句柄dma_handle_t结构体

__IO hal_lock_t lock

SPI锁(驱动负责管理,无需开发者初始化)

N/A

__IO hal_spi_state_t state

SPI运行状态(无需开发者初始化)

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

  • HAL_SPI_STATE_RESET(未初始化)
  • HAL_SPI_STATE_READY(已初始化且空闲)
  • HAL_SPI_STATE_BUSY(忙)
  • HAL_SPI_STATE_BUSY_TX(正在发送)
  • HAL_SPI_STATE_BUSY_RX(正在接收)
  • HAL_SPI_STATE_BUSY_TX_RX(正在收发)
  • HAL_SPI_STATE_ABORT(被中断)
  • HAL_SPI_STATE_ERROR(错误)

__IO uint32_t error_code

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

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

  • HAL_SPI_ERROR_NONE(无错误)
  • HAL_SPI_ERROR_TIMEOUT(超时)
  • HAL_SPI_ERROR_TRANSFER(传输错误)
  • HAL_SPI_ERROR_DMA(DMA传输错误)
  • HAL_SPI_ERROR_INVALID_PARAM(非法参数)

uint32_t timeout

SPI超时时间(无需开发者初始化)

N/A

uint32_t retention[8]

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

N/A

扫描关注

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