xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_hal_spi(SPI 驱动)

XTINY HAL SPI 模块接口 更多...

宏定义

#define XT_HAL_SPI_INVALID_ID   (0xFF)
#define XT_HAL_SPI_FRAME_FORMAT_S   (0)
#define XT_HAL_SPI_FRAME_FORMAT_W   (2)
#define XT_HAL_SPI_BIT_ORDER_S   (2)
#define XT_HAL_SPI_BIT_ORDER_W   (1)
#define XT_HAL_SPI_DATA_BITS_S   (3)
#define XT_HAL_SPI_DATA_BITS_W   (2)
#define XT_HAL_SPI_CPOL0_CPHA0   ((0) << (XT_HAL_SPI_FRAME_FORMAT_S))
#define XT_HAL_SPI_CPOL0_CPHA1   ((1) << (XT_HAL_SPI_FRAME_FORMAT_S))
#define XT_HAL_SPI_CPOL1_CPHA0   ((2) << (XT_HAL_SPI_FRAME_FORMAT_S))
#define XT_HAL_SPI_CPOL1_CPHA1   ((3) << (XT_HAL_SPI_FRAME_FORMAT_S))
#define XT_HAL_SPI_MSB_FIRST   ((0) << (XT_HAL_SPI_BIT_ORDER_S))
#define XT_HAL_SPI_LSB_FIRST   ((1) << (XT_HAL_SPI_BIT_ORDER_S))
#define XT_HAL_SPI_DATA_BITS_8   ((0) << (XT_HAL_SPI_DATA_BITS_S))
#define XT_HAL_SPI_DATA_BITS_16   ((1) << (XT_HAL_SPI_DATA_BITS_S))
#define XT_HAL_SPI_DATA_BITS_32   ((3) << (XT_HAL_SPI_DATA_BITS_S))

类型定义

typedef void(* xt_hal_spi_cb_t) (uint8_t spi_id, uint32_t event_id)
 SPI 回调函数类型定义

枚举

enum  xt_hal_spi_event_id { XT_HAL_SPI_EVENT_DONE = 0x00 }
 SPI 事件 ID 枚举 更多...

函数

xt_err_t xt_hal_spim_setup (uint8_t spi_id, uint32_t mode, uint32_t speed, uint8_t mosi_pin, uint8_t miso_pin, uint8_t sclk_pin, uint8_t cs_pin)
 初始化 SPI Master
xt_err_t xt_hal_spim_close (uint8_t spi_id)
 关闭 SPI Master
void xt_hal_spi_set_cb (uint8_t spi_id, xt_hal_spi_cb_t cb)
 设置 SPI 回调函数
int32_t xt_hal_spim_tx_0copy (uint8_t spi_id, const void *tx_buffer, size_t size)
 非阻塞 0 拷贝发送
int32_t xt_hal_spim_rx_0copy (uint8_t spi_id, void *rx_buffer, size_t size)
 非阻塞 0 拷贝接收
int32_t xt_hal_spim_txrx_0copy (uint8_t spi_id, const void *tx_buffer, void *rx_buffer, size_t size)
 非阻塞 0 拷贝全双工传输
int32_t xt_hal_spim_tx_block (uint8_t spi_id, const void *tx_buffer, size_t size)
 阻塞发送
int32_t xt_hal_spim_rx_block (uint8_t spi_id, void *rx_buffer, size_t size)
 阻塞接收
int32_t xt_hal_spim_txrx_block (uint8_t spi_id, const void *tx_buffer, void *rx_buffer, size_t size)
 阻塞全双工传输

详细描述

XTINY HAL SPI 模块接口

宏定义说明

◆ XT_HAL_SPI_BIT_ORDER_S

#define XT_HAL_SPI_BIT_ORDER_S   (2)

在文件 xt_hal_spi.h 第 37 行定义.

◆ XT_HAL_SPI_BIT_ORDER_W

#define XT_HAL_SPI_BIT_ORDER_W   (1)

在文件 xt_hal_spi.h 第 38 行定义.

◆ XT_HAL_SPI_CPOL0_CPHA0

#define XT_HAL_SPI_CPOL0_CPHA0   ((0) << (XT_HAL_SPI_FRAME_FORMAT_S))

CPOL=0, CPHA=0

在文件 xt_hal_spi.h 第 42 行定义.

◆ XT_HAL_SPI_CPOL0_CPHA1

#define XT_HAL_SPI_CPOL0_CPHA1   ((1) << (XT_HAL_SPI_FRAME_FORMAT_S))

CPOL=0, CPHA=1

在文件 xt_hal_spi.h 第 43 行定义.

◆ XT_HAL_SPI_CPOL1_CPHA0

#define XT_HAL_SPI_CPOL1_CPHA0   ((2) << (XT_HAL_SPI_FRAME_FORMAT_S))

CPOL=1, CPHA=0

在文件 xt_hal_spi.h 第 44 行定义.

◆ XT_HAL_SPI_CPOL1_CPHA1

#define XT_HAL_SPI_CPOL1_CPHA1   ((3) << (XT_HAL_SPI_FRAME_FORMAT_S))

CPOL=1, CPHA=1

在文件 xt_hal_spi.h 第 45 行定义.

◆ XT_HAL_SPI_DATA_BITS_16

#define XT_HAL_SPI_DATA_BITS_16   ((1) << (XT_HAL_SPI_DATA_BITS_S))

16 位数据帧

在文件 xt_hal_spi.h 第 51 行定义.

◆ XT_HAL_SPI_DATA_BITS_32

#define XT_HAL_SPI_DATA_BITS_32   ((3) << (XT_HAL_SPI_DATA_BITS_S))

32 位数据帧

在文件 xt_hal_spi.h 第 52 行定义.

◆ XT_HAL_SPI_DATA_BITS_8

#define XT_HAL_SPI_DATA_BITS_8   ((0) << (XT_HAL_SPI_DATA_BITS_S))

8 位数据帧

在文件 xt_hal_spi.h 第 50 行定义.

◆ XT_HAL_SPI_DATA_BITS_S

#define XT_HAL_SPI_DATA_BITS_S   (3)

在文件 xt_hal_spi.h 第 39 行定义.

◆ XT_HAL_SPI_DATA_BITS_W

#define XT_HAL_SPI_DATA_BITS_W   (2)

在文件 xt_hal_spi.h 第 40 行定义.

◆ XT_HAL_SPI_FRAME_FORMAT_S

#define XT_HAL_SPI_FRAME_FORMAT_S   (0)

在文件 xt_hal_spi.h 第 35 行定义.

◆ XT_HAL_SPI_FRAME_FORMAT_W

#define XT_HAL_SPI_FRAME_FORMAT_W   (2)

在文件 xt_hal_spi.h 第 36 行定义.

◆ XT_HAL_SPI_INVALID_ID

#define XT_HAL_SPI_INVALID_ID   (0xFF)

在文件 xt_hal_spi.h 第 33 行定义.

◆ XT_HAL_SPI_LSB_FIRST

#define XT_HAL_SPI_LSB_FIRST   ((1) << (XT_HAL_SPI_BIT_ORDER_S))

LSB 优先

在文件 xt_hal_spi.h 第 48 行定义.

◆ XT_HAL_SPI_MSB_FIRST

#define XT_HAL_SPI_MSB_FIRST   ((0) << (XT_HAL_SPI_BIT_ORDER_S))

不填时默认为 MSB

在文件 xt_hal_spi.h 第 47 行定义.

类型定义说明

◆ xt_hal_spi_cb_t

typedef void(* xt_hal_spi_cb_t) (uint8_t spi_id, uint32_t event_id)

SPI 回调函数类型定义

参数
spi_idSPI 索引
event_id事件 ID,见 xt_hal_spi_event_id

在文件 xt_hal_spi.h 第 69 行定义.

枚举类型说明

◆ xt_hal_spi_event_id

SPI 事件 ID 枚举

枚举值
XT_HAL_SPI_EVENT_DONE 

SPI 传输完成

在文件 xt_hal_spi.h 第 59 行定义.

函数说明

◆ xt_hal_spi_set_cb()

void xt_hal_spi_set_cb ( uint8_t spi_id,
xt_hal_spi_cb_t cb )

设置 SPI 回调函数

参数
spi_idSPI 索引
cb回调函数,见 xt_hal_spi_cb_t

◆ xt_hal_spim_close()

xt_err_t xt_hal_spim_close ( uint8_t spi_id)

关闭 SPI Master

参数
spi_idSPI 索引
返回
xt_err_t XT_EOK 成功,其他失败

◆ xt_hal_spim_rx_0copy()

int32_t xt_hal_spim_rx_0copy ( uint8_t spi_id,
void * rx_buffer,
size_t size )

非阻塞 0 拷贝接收

参数
spi_idSPI 索引
rx_buffer接收数据缓冲区
size接收数据长度(字节)
返回
int32_t 实际接收字节数,负数为错误码

◆ xt_hal_spim_rx_block()

int32_t xt_hal_spim_rx_block ( uint8_t spi_id,
void * rx_buffer,
size_t size )

阻塞接收

参数
spi_idSPI 索引
rx_buffer接收数据缓冲区
size接收数据长度(字节)
返回
int32_t 实际接收字节数,负数为错误码

◆ xt_hal_spim_setup()

xt_err_t xt_hal_spim_setup ( uint8_t spi_id,
uint32_t mode,
uint32_t speed,
uint8_t mosi_pin,
uint8_t miso_pin,
uint8_t sclk_pin,
uint8_t cs_pin )

初始化 SPI Master

如果 mosi_pin == miso_pin,自动初始化为 3 线模式。

参数
spi_idSPI 索引
modeSPI 模式配置(XT_HAL_SPI_* 宏的组合)
speed时钟速率(单位:Hz)
mosi_pinMOSI 引脚编号
miso_pinMISO 引脚编号
sclk_pinSCLK 引脚编号
cs_pinCS 引脚编号
返回
xt_err_t XT_EOK 成功,其他失败

◆ xt_hal_spim_tx_0copy()

int32_t xt_hal_spim_tx_0copy ( uint8_t spi_id,
const void * tx_buffer,
size_t size )

非阻塞 0 拷贝发送

参数
spi_idSPI 索引
tx_buffer发送数据缓冲区
size发送数据长度(字节)
返回
int32_t 实际发送字节数,负数为错误码

◆ xt_hal_spim_tx_block()

int32_t xt_hal_spim_tx_block ( uint8_t spi_id,
const void * tx_buffer,
size_t size )

阻塞发送

参数
spi_idSPI 索引
tx_buffer发送数据缓冲区
size发送数据长度(字节)
返回
int32_t 实际发送字节数,负数为错误码

◆ xt_hal_spim_txrx_0copy()

int32_t xt_hal_spim_txrx_0copy ( uint8_t spi_id,
const void * tx_buffer,
void * rx_buffer,
size_t size )

非阻塞 0 拷贝全双工传输

注解
3 线模式下不支持
参数
spi_idSPI 索引
tx_buffer发送数据缓冲区
rx_buffer接收数据缓冲区
size传输数据长度(字节)
返回
int32_t 实际传输字节数,负数为错误码

◆ xt_hal_spim_txrx_block()

int32_t xt_hal_spim_txrx_block ( uint8_t spi_id,
const void * tx_buffer,
void * rx_buffer,
size_t size )

阻塞全双工传输

注解
3 线模式下不支持
参数
spi_idSPI 索引
tx_buffer发送数据缓冲区
rx_buffer接收数据缓冲区
size传输数据长度(字节)
返回
int32_t 实际传输字节数,负数为错误码