|
WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
|
结构体 | |
| struct | spi_dma_config |
| SPI DMA配置数据结构定义。 更多... | |
类型定义 | |
| typedef hal_spi_attr_t | spi_attr_t |
| SPI基本属性定义。 | |
| typedef hal_spi_extra_attr_t | spi_extra_attr_t |
| SPI扩展属性定义。 | |
| typedef hal_spi_xfer_data_t | spi_xfer_data_t |
| SPI传输结构体。 | |
| typedef struct spi_dma_config | spi_dma_config_t |
| SPI DMA配置数据结构定义。 | |
| typedef void(* | spi_tx_callback_t) (const void *buffer, uint32_t length) |
| SPI发送数据的回调函数,通过 uapi_spi_set_irq_mode 注册到驱动中。 | |
| typedef void(* | spi_rx_callback_t) (const void *buffer, uint32_t length, bool error) |
| SPI接收数据的回调函数,通过 uapi_spi_set_irq_mode 注册到驱动中。 | |
函数 | |
| errcode_t | uapi_spi_init (spi_bus_t bus, spi_attr_t *attr, spi_extra_attr_t *extra_attr) |
| 初始化 SPI。 | |
| errcode_t | uapi_spi_deinit (spi_bus_t bus) |
| 去初始化 SPI。 | |
| errcode_t | uapi_spi_set_tmod (spi_bus_t bus, hal_spi_trans_mode_t tmod, uint8_t data_frame_num) |
| 设置SPI的传输模式。 | |
| errcode_t | uapi_spi_set_attr (spi_bus_t bus, spi_attr_t *attr) |
| 设置SPI的基础配置参数。 | |
| errcode_t | uapi_spi_get_attr (spi_bus_t bus, spi_attr_t *attr) |
| 读取SPI的基础配置参数。 | |
| errcode_t | uapi_spi_set_extra_attr (spi_bus_t bus, spi_extra_attr_t *extra_attr) |
| 设置SPI的高级配置参数。 | |
| errcode_t | uapi_spi_get_extra_attr (spi_bus_t bus, spi_extra_attr_t *extra_attr) |
| 读取SPI的高级配置参数。 | |
| errcode_t | uapi_spi_select_slave (spi_bus_t bus, spi_slave_t cs) |
| Master模式下选择需要对通的Slave设备。 | |
| errcode_t | uapi_spi_master_write (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout) |
| 将数据从主机写入到从机。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_spi_master_read (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout) |
| 从slave读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_spi_master_writeread (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout) |
| 主机写入和读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下两种种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_spi_slave_write (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout) |
| 从机向主机写入数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_spi_slave_read (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout) |
| 从主机读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_spi_slave_writeread (spi_bus_t bus, const spi_xfer_data_t *data, uint32_t timeout) |
| 从机写入和读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下两种种传输模式,但是不能在同一bus中同时使用。 | |
| errcode_t | uapi_spi_set_dma_mode (spi_bus_t bus, bool en, const spi_dma_config_t *dma_cfg) |
| 使能/去使能DMA模式下SPI传输。 | |
| errcode_t | uapi_spi_set_irq_mode (spi_bus_t bus, bool irq_en, spi_rx_callback_t rx_callback, spi_tx_callback_t tx_callback) |
| 设置是否使用中断模式在主机模式下传输数据。 | |
Copyright (c) HiSilicon (Shanghai) Technologies Co., Ltd. 2022-2022. All rights reserved.
Description: Provide SPI driver API
History:
2022-09-15, Create file.
| typedef hal_spi_attr_t spi_attr_t |
SPI基本属性定义。
| typedef struct spi_dma_config spi_dma_config_t |
SPI DMA配置数据结构定义。
| typedef hal_spi_extra_attr_t spi_extra_attr_t |
SPI扩展属性定义。
| typedef void(* spi_rx_callback_t) (const void *buffer, uint32_t length, bool error) |
SPI接收数据的回调函数,通过 uapi_spi_set_irq_mode 注册到驱动中。
| typedef void(* spi_tx_callback_t) (const void *buffer, uint32_t length) |
SPI发送数据的回调函数,通过 uapi_spi_set_irq_mode 注册到驱动中。
| typedef hal_spi_xfer_data_t spi_xfer_data_t |
SPI传输结构体。
| errcode_t uapi_spi_get_attr | ( | spi_bus_t | bus, |
| spi_attr_t * | attr | ||
| ) |
读取SPI的基础配置参数。
| errcode_t uapi_spi_get_extra_attr | ( | spi_bus_t | bus, |
| spi_extra_attr_t * | extra_attr | ||
| ) |
读取SPI的高级配置参数。
| errcode_t uapi_spi_init | ( | spi_bus_t | bus, |
| spi_attr_t * | attr, | ||
| spi_extra_attr_t * | extra_attr | ||
| ) |
初始化 SPI。
| errcode_t uapi_spi_master_read | ( | spi_bus_t | bus, |
| const spi_xfer_data_t * | data, | ||
| uint32_t | timeout | ||
| ) |
从slave读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考SPI KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | 指定的SPI接口,参考 spi_bus_t 。 |
| [out] | data | 数据传输指针,参考 spi_xfer_data_t 。 |
| [in] | timeout | 当前传输的超时时间(轮询模式下为轮询次数;DMA模式为超时时间,单位:ms;中断模式参数不生效)。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |
| errcode_t uapi_spi_master_write | ( | spi_bus_t | bus, |
| const spi_xfer_data_t * | data, | ||
| uint32_t | timeout | ||
| ) |
将数据从主机写入到从机。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考SPI KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | 指定的SPI接口,参考 spi_bus_t 。 |
| [in] | data | 数据传输指针,参考 spi_xfer_data_t 。 |
| [in] | timeout | 当前传输的超时时间(轮询模式下为轮询次数;DMA模式为超时时间,单位:ms;中断模式参数不生效)。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |
| errcode_t uapi_spi_master_writeread | ( | spi_bus_t | bus, |
| const spi_xfer_data_t * | data, | ||
| uint32_t | timeout | ||
| ) |
主机写入和读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下两种种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考SPI KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | 指定的SPI接口,参考 spi_bus_t 。 |
| [in,out] | data | 数据传输指针,参考 spi_xfer_data_t 。 |
| [in] | timeout | 当前传输的超时时间(轮询模式下为轮询次数;DMA模式为超时时间,单位:ms;中断模式参数不生效)。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |
| errcode_t uapi_spi_select_slave | ( | spi_bus_t | bus, |
| spi_slave_t | cs | ||
| ) |
Master模式下选择需要对通的Slave设备。
| errcode_t uapi_spi_set_attr | ( | spi_bus_t | bus, |
| spi_attr_t * | attr | ||
| ) |
设置SPI的基础配置参数。
| errcode_t uapi_spi_set_dma_mode | ( | spi_bus_t | bus, |
| bool | en, | ||
| const spi_dma_config_t * | dma_cfg | ||
| ) |
使能/去使能DMA模式下SPI传输。
| errcode_t uapi_spi_set_extra_attr | ( | spi_bus_t | bus, |
| spi_extra_attr_t * | extra_attr | ||
| ) |
设置SPI的高级配置参数。
| errcode_t uapi_spi_set_irq_mode | ( | spi_bus_t | bus, |
| bool | irq_en, | ||
| spi_rx_callback_t | rx_callback, | ||
| spi_tx_callback_t | tx_callback | ||
| ) |
设置是否使用中断模式在主机模式下传输数据。
| errcode_t uapi_spi_set_tmod | ( | spi_bus_t | bus, |
| hal_spi_trans_mode_t | tmod, | ||
| uint8_t | data_frame_num | ||
| ) |
设置SPI的传输模式。
| errcode_t uapi_spi_slave_read | ( | spi_bus_t | bus, |
| const spi_xfer_data_t * | data, | ||
| uint32_t | timeout | ||
| ) |
从主机读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考SPI KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | 指定的SPI接口,参考 spi_bus_t 。 |
| [out] | data | 数据传输指针,参考 spi_xfer_data_t 。 |
| [in] | timeout | 当前传输的超时时间(轮询模式下为轮询次数;DMA模式为超时时间,单位:ms;中断模式参数不生效)。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |
| errcode_t uapi_spi_slave_write | ( | spi_bus_t | bus, |
| const spi_xfer_data_t * | data, | ||
| uint32_t | timeout | ||
| ) |
从机向主机写入数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下三种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考SPI KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | 指定的SPI接口,参考 spi_bus_t 。 |
| [in] | data | 数据传输指针,参考 spi_xfer_data_t 。 |
| [in] | timeout | 当前传输的超时时间(轮询模式下为轮询次数;DMA模式为超时时间,单位:ms;中断模式参数不生效)。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |
| errcode_t uapi_spi_slave_writeread | ( | spi_bus_t | bus, |
| const spi_xfer_data_t * | data, | ||
| uint32_t | timeout | ||
| ) |
从机写入和读取数据。有两种方式,一种是手动切换模式,另外一种是自动切换模式,两种方式是静态配置的。 手动切换方式一共有以下两种种传输模式,但是不能在同一bus中同时使用。
- 手动切换模式包括:
自动切换模式(通过比较数据长度和阈值的大小自动切换轮询模式与DMA模式, 阈值具体请参考SPI KCONFIG中POLL和DMA自动切换阈值设置)包括:
| [in] | bus | 指定的SPI接口,参考 spi_bus_t 。 |
| [in,out] | data | 数据传输指针,参考 spi_xfer_data_t 。 |
| [in] | timeout | 当前传输的超时时间(轮询模式下为轮询次数;DMA模式为超时时间,单位:ms;中断模式参数不生效)。 |
| ERRCODE_SUCC | 成功。 |
| Other | 失败,参考 errcode_t 。 |