SPI驱动的结构体
spi_init_t
SPI驱动的初始化结构体spi_init_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
uint32_t direction |
传输方向。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t data_size |
数据位宽。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t clk_polarity |
时钟极性。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t clk_phase |
时钟相位。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t baud_rate_prescaler |
波特率分频系数。 |
0x0000 ~ 0xFFFF之间的偶数 SPI传输速率=系统时钟/分频系数 |
uint32_t ti_mode |
是否启用TI模式。 |
该参数的取值可以是下列值中的任意一个:
|
uint32_t slave_select |
从设备选择。 |
该参数的取值可以是下列值中的任意一个:
|
spi_handle_t
SPI驱动的句柄结构体spi_handle_t的定义如下:
| 数据域 | 域段描述 | 取值 |
|---|---|---|
|
ssi_regs_t *p_instance |
SPI外设实例 |
该参数的取值可以是下列值中的任意一个:
|
|
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运行状态(无需开发者初始化) |
该参数的取值可以是下列值中的任意一个:
|
|
__IO uint32_t error_code |
SPI错误码(无需开发者初始化) |
该参数的取值可以是下列值中的任意一个:
|
|
uint32_t timeout |
SPI超时时间(无需开发者初始化) |
N/A |
|
uint32_t retention[8] |
保存SPI寄存器信息(驱动负责管理,无需开发者初始化) |
N/A |