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

SPI驱动API描述

SPI驱动的API主要如下:

表 350 SPI驱动的APIs
API类别 API名称 描述
初始化 hal_spi_init() 初始化SPI外设,配置时钟分频系数等参数。
hal_spi_deinit() 反初始化SPI外设。
hal_spi_msp_init() 初始化SPI外设所使用的GPIO引脚复用、NVIC中断、DMA通道。
hal_spi_msp_deinit() 反初始化SPI外设所使用的GPIO引脚复用、NVIC中断、DMA通道。
IO操作 hal_spi_transmit() 发送数据,轮询方式。
hal_spi_receive() 接收数据,轮询方式。
hal_spi_transmit_receive() 收发数据,轮询方式。
hal_spi_read_eeprom() 读取EEPROM,轮询方式。
hal_spi_transmit_it() 发送数据,中断方式。
hal_spi_receive_it() 接收数据,中断方式。
hal_spi_transmit_receive_it() 收发数据,中断方式。
hal_spi_read_eeprom_it() 读取EEPROM,中断方式。
hal_spi_transmit_dma() 发送数据,DMA方式。
hal_spi_receive_dma() 接收数据,DMA方式。
hal_spi_transmit_receive_dma() 收发数据,DMA方式。
hal_spi_read_eeprom_dma() 读取EEPROM,DMA方式。
hal_spi_abort() 中止中断及DMA方式下的数据传输,轮询方式。
hal_spi_abort_it() 中止中断及DMA方式下的数据传输,中断方式。
中断处理及回调函数 hal_spi_irq_handler() 中断处理函数。
hal_spi_tx_cplt_callback() 发送完成中断回调函数。
hal_spi_rx_cplt_callback() 接收完成中断回调函数。
hal_spi_tx_rx_cplt_callback() 收发完成中断回调函数。
hal_spi_error_callback() 错误中断回调函数。
hal_spi_abort_cplt_callback() 中止完成中断回调函数。
状态及错误 hal_spi_get_state() 获取驱动运行状态。
hal_spi_get_error() 获取错误码。
控制 hal_spi_set_timeout() 设置超时时间。
hal_spi_set_tx_fifo_threshold() 设置TX FIFO阈值。
hal_spi_set_rx_fifo_threshold() 设置RX FIFO阈值。
hal_spi_get_tx_fifo_threshold() 获取TX FIFO阈值。
hal_spi_get_rx_fifo_threshold() 获取RX FIFO阈值。
睡眠相关 hal_spi_suspend_reg() 睡眠时挂起SPI配置相关的寄存器。
hal_spi_resume_reg() 唤醒时恢复SPI配置相关的寄存器。

下面章节将对各API进行详细描述。

hal_spi_init

表 351 hal_spi_init接口
函数原型

hal_status_t hal_spi_init(spi_handle_t *p_spi)

功能说明

根据spi_init_t里的参数初始化SPI外设和初始化关联句柄。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

HAL状态。

备注

hal_spi_deinit

表 352 hal_spi_deinit接口
函数原型

hal_status_t hal_spi_deinit(spi_handle_t *p_spi)

功能说明

反初始化SPI外设。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

HAL状态。

备注

hal_spi_msp_init

表 353 hal_spi_msp_init接口
函数原型

void hal_spi_msp_init(spi_handle_t *p_spi)

功能说明

初始化SPI所使用的GPIO引脚复用、NVIC中断、DMA通道等配置。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

备注

该函数为weak类型的空函数,开发者需重写该API完成GPIO引脚复用、NVIC中断、DMA通道的初始化。

hal_spi_msp_deinit

表 354 hal_spi_msp_deinit接口
函数原型

void hal_spi_msp_deinit(spi_handle_t *p_spi)

功能说明

反初始化SPI所使用的GPIO引脚复用、NVIC中断、DMA通道等配置。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

备注

该函数为weak类型的空函数,开发者需重写该API完成GPIO引脚复用、NVIC中断、DMA通道的反初始化。

hal_spi_transmit

表 355 hal_spi_transmit接口
函数原型

hal_status_t hal_spi_transmit(spi_handle_t *p_spi, uint8_t *p_data, uint32_t length, uint32_t timeout)

功能说明

发送大量数据,轮询方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_data:指向数据缓冲区的指针。

length:待发送数据的长度。

timout:超时时间。

返回值

HAL状态。

备注

返回HAL_ERROR时可调用hal_spi_get_error()获取具体的错误码。

hal_spi_receive

表 356 hal_spi_receive接口
函数原型

hal_status_t hal_spi_receive(spi_handle_t *p_spi, uint8_t *p_data, uint32_t length, uint32_t timeout)

功能说明

接收大量数据,轮询方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_data:指向数据缓冲区的指针。

length:待接收数据的长度。

timout:超时时间。

返回值

HAL状态。

备注

返回HAL_ERROR时可调用hal_spi_get_error()获取具体的错误码。

hal_spi_transmit_receive

表 357 hal_spi_transmit_receive接口
函数原型

hal_status_t hal_spi_transmit_receive(spi_handle_t *p_spi, uint8_t *p_tx_data, uint8_t *p_rx_data, uint32_t length, uint32_t timeout)

功能说明

发送和接收大量数据,全双工,轮询方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_tx_data:指向发送数据缓冲区的指针。

p_rx_data:指向接收数据缓冲区的指针。

length:待发送和接收数据的长度。

timout:超时时间。

返回值

HAL状态。

备注

返回HAL_ERROR时可调用hal_spi_get_error()获取具体的错误码。

hal_spi_read_eeprom

表 358 hal_spi_read_eeprom接口
函数原型

hal_status_t hal_spi_read_eeprom(spi_handle_t *p_spi, uint8_t *p_tx_data, uint8_t *p_rx_data, uint32_t tx_number_data, uint32_t rx_number_data, uint32_t timeout)

功能说明

读取EEPROM中的数据,半双工,轮询方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_tx_data:指向发送数据缓冲区的指针。

p_rx_data:指向接收数据缓冲区的指针。

tx_number_data:待发送数据的长度。

rx_number_data:待接收数据的长度。

timout:超时时间。

返回值

HAL状态。

备注

返回HAL_ERROR时可调用hal_spi_get_error()获取具体的错误码。

hal_spi_transmit_it

表 359 hal_spi_transmit_it接口
函数原型

hal_status_t hal_spi_transmit_it(spi_handle_t *p_spi, uint8_t *p_data, uint32_t length)

功能说明

发送大量数据,中断方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_data:指向数据缓冲区的指针。

length:待发送数据的长度。

返回值

HAL状态。

备注

hal_spi_receive_it

表 360 hal_spi_receive_it接口
函数原型

hal_status_t hal_spi_receive_it(spi_handle_t *p_spi, uint8_t *p_data, uint32_t length)

功能说明

接收大量数据,中断方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_data:指向数据缓冲区的指针。

length:待接收数据的长度。

返回值

HAL状态

备注

hal_spi_transmit_receive_it

表 361 hal_spi_transmit_receive_it接口
函数原型

hal_status_t hal_spi_transmit_receive_it(spi_handle_t *p_spi, uint8_t *p_tx_data, uint8_t *p_rx_data, uint32_t length)

功能说明

发送和接收大量数据,全双工,中断方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息

p_tx_data:指向发送数据缓冲区的指针。

p_rx_data:指向接收数据缓冲区的指针。

length:待发送和接收数据的长度。

返回值

HAL状态。

备注

hal_spi_read_eeprom_it

表 362 hal_spi_read_eeprom_it接口
函数原型

hal_status_t hal_spi_read_eeprom_it(spi_handle_t *p_spi, uint8_t *p_tx_data, uint8_t *p_rx_data, uint32_t tx_number_data, uint32_t rx_number_data)

功能说明

读取EEPROM中的数据,半双工,中断方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_tx_data:指向发送数据缓冲区的指针。

p_rx_data:指向接收数据缓冲区的指针。

tx_number_data:待发送数据的长度。

rx_number_data:待接收数据的长度。

返回值

HAL状态。

备注

hal_spi_transmit_dma

表 363 hal_spi_transmit_dma接口
函数原型

hal_status_t hal_spi_transmit_dma(spi_handle_t *p_spi, uint8_t *p_data, uint32_t length)

功能说明

发送大量数据,DMA方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_data:指向数据缓冲区的指针。

length:待发送数据的长度。

返回值

HAL状态。

备注

hal_spi_receive_dma

表 364 hal_spi_receive_dma接口
函数原型

hal_status_t hal_spi_receive_dma(spi_handle_t *p_spi, uint8_t *p_data, uint32_t length)

功能说明

接收大量数据,DMA方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_data:指向数据缓冲区的指针。

length:待接收数据的长度。

返回值

HAL状态。

备注

hal_spi_transmit_receive_dma

表 365 hal_spi_transmit_receive_dma接口
函数原型

hal_status_t hal_spi_transmit_receive_dma(spi_handle_t *p_spi, uint8_t *p_tx_data, uint8_t *p_rx_data, uint32_t length)

功能说明

发送和接收大量数据,全双工,DMA方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_tx_data:指向发送数据缓冲区的指针。

p_rx_data:指向接收数据缓冲区的指针。

length:待发送和接收数据的长度。

返回值

HAL状态

备注

hal_spi_read_eeprom_dma

表 366 hal_spi_read_eeprom_dma接口
函数原型

hal_status_t hal_spi_read_eeprom_dma(spi_handle_t *p_spi, uint8_t *p_tx_data, uint8_t *p_rx_data, uint32_t tx_number_data, uint32_t rx_number_data)

功能说明

读取EEPROM中的数据,半双工,DMA方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

p_tx_data:指向发送数据缓冲区的指针。

p_rx_data:指向接收数据缓冲区的指针。

tx_number_data:待发送数据的长度。

rx_number_data:待接收数据的长度。

返回值

HAL状态

备注

hal_spi_abort

表 367 hal_spi_abort接口
函数原型

hal_status_t hal_spi_abort(spi_handle_t *p_spi)

功能说明

中止中断及DMA方式下的数据传输,轮询方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

HAL状态。

备注

该函数为轮询式函数,传输中止完成后退出函数。

hal_spi_abort_it

表 368 hal_spi_abort_it接口
函数原型

hal_status_t hal_spi_abort_it(spi_handle_t *p_spi)

功能说明

中止中断及DMA方式下的数据传输,中断方式。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

HAL状态。

备注

该函数为非轮询式函数,使能收发中断后,该函数立即返回。TX_ABRT中断触发后中止完成,此时hal_spi_abort_cplt_callback()将会被调用。

hal_spi_irq_handler

表 369 hal_spi_irq_handler接口
函数原型

void hal_spi_irq_handler(spi_handle_t *p_spi)

功能说明

处理SPI中断请求。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

备注

hal_spi_tx_cplt_callback

表 370 hal_spi_tx_cplt_callback接口
函数原型

void hal_spi_tx_cplt_callback(spi_handle_t *p_spi)

功能说明

发送完成中断回调函数。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

备注

该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。

hal_spi_rx_cplt_callback

表 371 hal_spi_rx_cplt_callback接口
函数原型

void hal_spi_rx_cplt_callback(spi_handle_t *p_spi)

功能说明

接收完成中断回调函数。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

备注

该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。

hal_spi_tx_rx_cplt_callback

表 372 hal_spi_tx_rx_cplt_callback接口
函数原型

void hal_spi_tx_rx_cplt_callback(spi_handle_t *p_spi)

功能说明

收发完成中断回调函数。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

备注

该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。

hal_spi_error_callback

表 373 hal_spi_error_callback接口
函数原型

void hal_spi_error_callback(spi_handle_t *p_spi)

功能说明

SPI错误回调函数。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

备注

该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。

hal_spi_abort_cplt_callback

表 374 hal_spi_abort_cplt_callback接口
函数原型

void hal_spi_abort_cplt_callback(spi_handle_t *p_spi)

功能说明

SPI中止完成回调函数。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

备注

该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。

hal_spi_get_state

表 375 hal_spi_get_state接口
函数原型

hal_spi_state_t hal_spi_get_state(spi_handle_t *p_spi)

功能说明

获取SPI运行状态。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

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(错误)
备注

hal_spi_get_error

表 376 hal_spi_get_error接口
函数原型

uint32_t hal_spi_get_error(spi_handle_t *p_spi)

功能说明

获取SPI错误码。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

SPI错误码,该参数的取值可以是下列值中的任意一个:

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

hal_spi_set_timeout

表 377 hal_spi_set_timeout接口
函数原型

void hal_spi_set_timeout(spi_handle_t *p_spi, uint32_t timeout)

功能说明

设置SPI内部API的超时时间。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

timeout:超时时间(ms)。

返回值

备注

hal_spi_set_tx_fifo_threshold

表 378 hal_spi_set_tx_fifo_threshold接口
函数原型

hal_status_t hal_spi_set_tx_fifo_threshold(spi_handle_t *p_spi, uint32_t threshold)

功能说明

设置TX FIFO阈值。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

threshold:TX FIFO阈值。

返回值

HAL状态。

备注

hal_spi_set_rx_fifo_threshold

表 379 hal_spi_set_rx_fifo_threshold接口
函数原型

hal_status_t hal_spi_set_rx_fifo_threshold(spi_handle_t *p_spi, uint32_t threshold)

功能说明

设置RX FIFO阈值。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

threshold:RX FIFO阈值。

返回值

HAL状态。

备注

hal_spi_get_tx_fifo_threshold

表 380 hal_spi_get_tx_fifo_threshold接口
函数原型

uint32_t hal_spi_get_tx_fifo_threshold(spi_handle_t *p_spi)

功能说明

获取TX FIFO阈值。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

TX FIFO阈值(取值范围0 ~ 7,其中0表示TX FIFO为空,7表示TX FIFO差一个字节满)。

备注

hal_spi_get_rx_fifo_threshold

表 381 hal_spi_get_rx_fifo_threshold接口
函数原型

uint32_t hal_spi_get_rx_fifo_threshold(spi_handle_t *p_spi)

功能说明

获取RX FIFO阈值。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

RX FIFO阈值(取值范围0 ~ 7,其中0表示RX FIFO中有一个字节,7表示RX FIFO满)。

备注

hal_spi_suspend_reg

表 382 hal_spi_suspend_reg接口
函数原型

hal_status_t hal_spi_suspend_reg(spi_handle_t *p_spi)

功能说明

睡眠时挂起SPI配置相关的寄存器。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

HAL状态。

备注

hal_spi_resume_reg

表 383 hal_spi_resume_reg接口
函数原型

hal_status_t hal_spi_resume_reg(spi_handle_t *p_spi)

功能说明

唤醒时恢复SPI配置相关的寄存器。

输入参数

p_spi:指向spi_handle_t结构体变量的指针,该结构体变量包含指定的SPI的配置信息。

返回值

HAL状态。

备注

扫描关注

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