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

QSPI驱动结构的结构体

qspi_init_t

QSPI驱动的初始化结构体qspi_init_t的定义如下:

表 283 qspi_init_t结构体
数据域 域段描述 取值

uint32_t clock_prescaler

时钟分频系数。

0x0000 ~ 0xFFFF之间的偶数

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

uint32_t clock_mode

时钟极性及相位模式。

该参数的取值可以是下列值中的任意一个:
  • QSPI_CLOCK_MODE_0(CPOL = 0,CPHA = 0)
  • QSPI_CLOCK_MODE_1(CPOL = 0,CPHA = 1)
  • QSPI_CLOCK_MODE_2(CPOL = 1,CPHA = 0)
  • QSPI_CLOCK_MODE_3(CPOL =1,CPHA = 1)

uint32_t rx_sample_delay

RX延时采集参数

0x0 ~ 0x7

qspi_handle_t

QSPI驱动的句柄结构体qspi_handle_t的定义如下:

表 284 qspi_handle_t结构体
数据域 域段描述 取值

ssi_regs_t*p_instance

QSPI外设实例。

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

  • QSPI0
  • QSPI1

qspi_init_t init

初始化结构体(参考qspi_init_t结构体)。

N/A

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 _qspi_handle *p_qspi)

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

N/A

void (*read_fifo)(struct _qspi_handle *p_qspi)

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

N/A

dma_handle_t *p_dma

指向数据收发通道的DMA句柄dma_handle_t结构体的指针。

N/A

__IO hal_lock_t lock

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

N/A

__IO hal_qspi_state_t state

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

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

  • HAL_QSPI_STATE_RESET(未初始化)
  • HAL_QSPI_STATE_READY(已初始化且空闲)
  • HAL_QSPI_STATE_BUSY(忙)
  • HAL_QSPI_STATE_BUSY_INDIRECT_TX(正在发送)
  • HAL_QSPI_STATE_BUSY_INDIRECT_RX (正在接收)
  • HAL_QSPI_STATE_ABORT(被中断)
  • HAL_QSPI_STATE_ERROR(错误)

__IO uint32_t error_code

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

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

  • HAL_QSPI_ERROR_NONE(无错误)
  • HAL_QSPI_ERROR_TIMEOUT(超时)
  • HAL_QSPI_ERROR_TRANSFER(传输错误)
  • HAL_QSPI_ERROR_DMA(DMA传输错误)
  • HAL_QSPI_ERROR_INVALID_PARAM(非法参数)

uint32_t timeout

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

N/A

uint32_t retention[8]

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

N/A

qspi_command_t

QSPI驱动的命令结构体qspi_command_t的定义如下:

表 285 qspi_command_t结构体
数据域 域段描述 取值

uint32_t instruction

指令

0x0000 ~ 0xFFFF

uint32_t address

地址

0x0000_0000 ~ 0xFFFF_FFFF

uint32_t instruction_size

指令位宽

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

  • QSPI_INSTSIZE_00_BITS(0位)
  • QSPI_INSTSIZE_04_BITS(4位)
  • QSPI_INSTSIZE_08_BITS(8位)
  • QSPI_INSTSIZE_16_BITS(16位)

uint32_t address_size

地址位宽

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

  • QSPI_ADDRSIZE_00_BITS(0位)
  • QSPI_ADDRSIZE_04_BITS(4位)
  • QSPI_ADDRSIZE_08_BITS(8位)
  • QSPI_ADDRSIZE_12_BITS(12位)
  • QSPI_ADDRSIZE_16_BITS(16位)
  • QSPI_ADDRSIZE_20_BITS(20位)
  • QSPI_ADDRSIZE_24_BITS(24位)
  • QSPI_ADDRSIZE_28_BITS(28位)
  • QSPI_ADDRSIZE_32_BITS(32位)

uint32_t dummy_cycles

读写转换插入时钟周期

0 ~ 31

uint32_t data_size

有效数据位

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

  • LL_SSI_DATASIZE_4BIT
  • LL_SSI_DATASIZE_5BIT
  • LL_SSI_DATASIZE_6BIT
  • LL_SSI_DATASIZE_7BIT
  • LL_SSI_DATASIZE_8BIT
  • LL_SSI_DATASIZE_9BIT
  • LL_SSI_DATASIZE_10BIT
  • LL_SSI_DATASIZE_11BIT
  • LL_SSI_DATASIZE_12BIT
  • LL_SSI_DATASIZE_13BIT
  • LL_SSI_DATASIZE_14BIT
  • LL_SSI_DATASIZE_15BIT
  • LL_SSI_DATASIZE_16BIT
  • LL_SSI_DATASIZE_17BIT
  • LL_SSI_DATASIZE_18BIT
  • LL_SSI_DATASIZE_19BIT
  • LL_SSI_DATASIZE_20BIT
  • LL_SSI_DATASIZE_21BIT
  • LL_SSI_DATASIZE_22BIT
  • LL_SSI_DATASIZE_23BIT
  • LL_SSI_DATASIZE_24BIT
  • LL_SSI_DATASIZE_25BIT
  • LL_SSI_DATASIZE_26BIT
  • LL_SSI_DATASIZE_27BIT
  • LL_SSI_DATASIZE_28BIT
  • LL_SSI_DATASIZE_29BIT
  • LL_SSI_DATASIZE_30BIT
  • LL_SSI_DATASIZE_31BIT
  • LL_SSI_DATASIZE_32BIT

uint32_t instruction_address_mode

指令及地址传输模式

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

  • QSPI_INST_ADDR_ALL_IN_SPI(指令和地址采用Standard SPI模式传输)
  • QSPI_INST_IN_SPI_ADDR_IN_SPIFRF(指令采用Standard SPI模式传输,地址采用Dual/Quad SPI模式)
  • QSPI_INST_ADDR_ALL_IN_SPIFRF(指令和地址都采用Dual/Quad SPI模式传输)

uint32_t data_mode

数据传输模式

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

  • QSPI_DATA_MODE_SPI(Standard SPI模式)
  • QSPI_DATA_MODE_DUALSPI(Dual SPI模式)
  • QSPI_DATA_MODE_QUADSPI(Quad SPI模式)

uint32_t length

数据长度

0x0000_0000 ~ 0xFFFF_FFFF

扫描关注

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