QSPI驱动结构的结构体
qspi_init_t
QSPI驱动的初始化结构体qspi_init_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
uint32_t clock_prescaler |
时钟分频系数。 |
0x0000 ~ 0xFFFF之间的偶数 QSPI传输速率 = 系统时钟 / 分频系数 |
uint32_t clock_mode |
时钟极性及相位模式。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t rx_sample_delay |
RX延时采集参数 |
0x0 ~ 0x7 |
qspi_handle_t
QSPI驱动的句柄结构体qspi_handle_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
|
ssi_regs_t*p_instance |
QSPI外设实例。 |
该参数的取值可以是下列值中的任意一个:
|
|
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运行状态(无需开发者初始化)。 |
该参数的取值可以是下列值中的任意一个:
|
|
__IO uint32_t error_code |
QSPI错误码(无需开发者初始化)。 |
该参数的取值可以是下列值中的任意一个:
|
|
uint32_t timeout |
QSPI超时时间(无需开发者初始化)。 |
N/A |
|
uint32_t retention[8] |
保存QSPI寄存器信息(驱动负责管理,无需开发者初始化)。 |
N/A |
qspi_command_t
QSPI驱动的命令结构体qspi_command_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
|
uint32_t instruction |
指令 |
0x0000 ~ 0xFFFF |
|
uint32_t address |
地址 |
0x0000_0000 ~ 0xFFFF_FFFF |
|
uint32_t instruction_size |
指令位宽 |
该参数的取值可以是下列值中的任意一个:
|
|
uint32_t address_size |
地址位宽 |
该参数的取值可以是下列值中的任意一个:
|
|
uint32_t dummy_cycles |
读写转换插入时钟周期 |
0 ~ 31 |
|
uint32_t data_size |
有效数据位 |
该参数的取值可以是下列值中的任意一个:
|
|
uint32_t instruction_address_mode |
指令及地址传输模式 |
该参数的取值可以是下列值中的任意一个:
|
|
uint32_t data_mode |
数据传输模式 |
该参数的取值可以是下列值中的任意一个:
|
|
uint32_t length |
数据长度 |
0x0000_0000 ~ 0xFFFF_FFFF |