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

结构体

app_spi_params_t

结构体定义如下:

表 206 app_spi_params_t结构体成员
成员 描述 取值

app_spi_id_t id

设备类型

该参数的取值可以是下列值中的任意一个:
  • APP_SPI_ID_SLAVE(从设备)
  • APP_SPI_ID_MASTER(主设备)

app_spi_pin_cfg_t pin_cfg

引脚配置

参考app_spi_pin_cfg_t结构体

app_spi_dma_cfg_t dma_cfg

模式设置

参考app_spi_dma_cfg_t结构体

spi_init_t init

初始化结构体

参考spi_init_t结构体

bool is_soft_cs

是否通过软件控制CS

  • 1:通过软件控制
  • 0:不通过软件控制(GR551x该配置项不生效,固定用软件CS)

spi_env_t spi_env

仅用于记录初始化设备的句柄、相关参数和信号量等,不需要配置

详细信息请参考文件:SDK_Folder\drivers\inc\app_spi.h

app_spi_pin_cfg_t

结构体定义如下:

表 207 app_spi_pin_cfg_t结构体成员
成员 描述 取值

app_spi_pin_t cs

片选引脚配置

参考app_spi_pin_t结构体

app_spi_pin_t clk

时钟引脚配置

参考app_spi_pin_t结构体

app_spi_pin_t mosi

主输出从输入引脚配置

参考app_spi_pin_t结构体

app_spi_pin_t miso

主输入从输出引脚配置

参考app_spi_pin_t结构体

详细信息请参考文件:SDK_Folder\drivers\inc\app_spi.h

app_spi_pin_t

结构体定义如下:

表 208 app_spi_pin_t结构体成员
成员 描述 取值

app_io_type_t type

IO类型

app_io_evt_t中描述

app_io_mux_t mux

设置IO映射功能

参考app_io_init_t结构体,具体映射模式根据芯片Datasheet中的Pin Mux进行选择

uint32_t pin

选择IO引脚

参考app_io_init_t结构体,具体根据芯片Datasheet中SPI资源进行选择

app_io_mode_t mode

IO模式配置

APP_IO_MODE_MUX

app_io_pull_t pull

设置IO上拉/下拉/浮空

参考app_io_init_t结构体中描述

uint8_t enable

使能/不使能引脚

  • true:使能
  • false:不使能

详细信息请参考文件:SDK_Folder\drivers\inc\app_spi.h

app_spi_dma_cfg_t

结构体定义如下:

表 209 app_spi_dma_cfg_t结构体成员
成员 描述 取值

dma_regs_t * tx_dma_instance

SPI TX指定DMA模块配置

GR5526:

  • DMA0
  • DMA1

具体选择参考app_dma_params_t章节中,DMA0/DMA1支持的外设。

GR551x:

  • DMA

dma_regs_t * rx_dma_instance

SPI RX指定DMA模块配置

GR5526:

  • DMA0
  • DMA1

具体选择参考app_dma_params_t章节中,DMA0/DMA1支持的外设。

GR551x:

  • DMA

dma_channel_t

tx_dma_channel

SPI TX的DMA通道选择

app_dma_params_t中通道描述

dma_channel_t

rx_dma_channel

SPI RX的DMA通道选择

app_dma_params_t中通道描述

uint32_t wait_timeout_ms

轮询和死机等待的超时时间,以ms为单位

(仅适用于GR5526)

uint32_t extend 扩展段(仅适用于GR5526)

详细信息请参考文件:SDK_Folder\drivers\inc\app_spi.h

spi_init_t

结构体定义如下:

表 210 spi_init_t结构体成员
成员 描述 取值

uint32_t data_size

SPI数据大小

该参数的取值可以是下列值中的任意一个:
  • SPI_DATASIZE_4BIT(4 bits) ~ SPI_DATASIZE_32BIT(32 bits)

uint32_t clock_polarity

串行时钟有效极性

该参数的取值可以是下列值中的任意一个:
  • SPI_POLARITY_LOW(CLK非活动状态时为低电平)
  • SPI_POLARITY_HIGH(CLK非活动状态时为高电平)

uint32_t clock_phase

位捕获的时钟活动边沿

该参数的取值可以是下列值中的任意一个:
  • SPI_PHASE_1EDGE(在第一个时钟变化沿捕获数据)
  • SPI_PHASE_2EDGE(在第二个时钟变化沿捕获数据)

uint32_t baudrate_prescaler

配置发送和接收SCK时钟波特率的预分频器值

取值范围:0 ~ 65534之间的偶数,如果是0,表示关闭clk。

分频值与波特率关系:clock rate = baudrate= peripheral CLK / baudrate_prescaler。

uint32_t ti_mode

TI mode使能/不使能

该参数的取值可以是下列值中的任意一个:
  • SPI_TIMODE_DISABLE(不使能)
  • SPI_TIMODE_ENABLE(使能)

uint32_t slave_select

指定选择的从设备

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

uint32_t rx_sample_delay

RX输入端口的采样延时,以系统外设时钟周期为单位(仅适用于GR5526)

0 ~ 0x7

详细信息请参考文件:SDK_Folder\drivers\inc\hal\gr55xx_hal_spi.h

app_spi_evt_t

结构体定义如下:

表 211 app_spi_evt_t结构体成员
成员 描述 取值

app_spi_evt_type_t type

串口事件类型

该参数的取值可以是下列值中的任意一个:
  • APP_SPI_EVT_ERROR(SPI传输错误)
  • APP_SPI_EVT_TX_CPLT(SPI发送完成)
  • APP_SPI_EVT_RX_CPLT(SPI接收完成)
  • APP_SPI_EVT_TX_RX_CPLT(双工模式下,收发都完成)
  • APP_SPI_ABORT(SPI Master传输被中断)

union

{

uint32_t error_code;

uint16_t size;

}data;

  • uint32_t error_code:SPI事件返回的错误ID
  • uint16_t size:SPI已接收/发送的数据长度

说明:

若事件类型为传输错误,此处返回错误ID; 若事件类型为接收/发送完成,此处显示已接收/发送的数据长度

SPI错误ID及对应含义如下:
  • HAL_SPI_ERROR_NONE(无错误)
  • HAL_SPI_ERROR_TIMEOUT(超时)
  • HAL_SPI_ERROR_TRANSFER(传输错误)
  • HAL_SPI_ERROR_DMA(DMA传输错误)
  • HAL_SPI_ERROR_INVALID_PARAM(无效参数)

详细信息请参考文件:SDK_Folder\drivers\inc\app_spi.h

扫描关注

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