xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_hal_spi.h
浏览该文件的文档.
1
12
13#ifndef __XT_HAL_SPI_H__
14#define __XT_HAL_SPI_H__
15
16/* ==================== [Includes] ========================================== */
17
18#include "xt_hal_internal.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
30
31/* ==================== [Defines] =========================================== */
32
33#define XT_HAL_SPI_INVALID_ID (0xFF)
34
35#define XT_HAL_SPI_FRAME_FORMAT_S (0)
36#define XT_HAL_SPI_FRAME_FORMAT_W (2)
37#define XT_HAL_SPI_BIT_ORDER_S (2)
38#define XT_HAL_SPI_BIT_ORDER_W (1)
39#define XT_HAL_SPI_DATA_BITS_S (3)
40#define XT_HAL_SPI_DATA_BITS_W (2)
41
42#define XT_HAL_SPI_CPOL0_CPHA0 ((0) << (XT_HAL_SPI_FRAME_FORMAT_S))
43#define XT_HAL_SPI_CPOL0_CPHA1 ((1) << (XT_HAL_SPI_FRAME_FORMAT_S))
44#define XT_HAL_SPI_CPOL1_CPHA0 ((2) << (XT_HAL_SPI_FRAME_FORMAT_S))
45#define XT_HAL_SPI_CPOL1_CPHA1 ((3) << (XT_HAL_SPI_FRAME_FORMAT_S))
46
47#define XT_HAL_SPI_MSB_FIRST ((0) << (XT_HAL_SPI_BIT_ORDER_S))
48#define XT_HAL_SPI_LSB_FIRST ((1) << (XT_HAL_SPI_BIT_ORDER_S))
49
50#define XT_HAL_SPI_DATA_BITS_8 ((0) << (XT_HAL_SPI_DATA_BITS_S))
51#define XT_HAL_SPI_DATA_BITS_16 ((1) << (XT_HAL_SPI_DATA_BITS_S))
52#define XT_HAL_SPI_DATA_BITS_32 ((3) << (XT_HAL_SPI_DATA_BITS_S))
53
54/* ==================== [Typedefs] ========================================== */
55
62
69typedef void (*xt_hal_spi_cb_t)(uint8_t spi_id, uint32_t event_id);
70
71/* ==================== [Global Prototypes] ================================= */
72
88 uint8_t spi_id, uint32_t mode, uint32_t speed,
89 uint8_t mosi_pin, uint8_t miso_pin,
90 uint8_t sclk_pin, uint8_t cs_pin);
91
99
106void xt_hal_spi_set_cb(uint8_t spi_id, xt_hal_spi_cb_t cb);
107
116int32_t xt_hal_spim_tx_0copy(uint8_t spi_id, const void *tx_buffer, size_t size);
117
126int32_t xt_hal_spim_rx_0copy(uint8_t spi_id, void *rx_buffer, size_t size);
127
139int32_t xt_hal_spim_txrx_0copy(uint8_t spi_id,
140 const void *tx_buffer,
141 void *rx_buffer,
142 size_t size);
143
152int32_t xt_hal_spim_tx_block(uint8_t spi_id, const void *tx_buffer, size_t size);
153
162int32_t xt_hal_spim_rx_block(uint8_t spi_id, void *rx_buffer, size_t size);
163
175int32_t xt_hal_spim_txrx_block(uint8_t spi_id,
176 const void *tx_buffer,
177 void *rx_buffer,
178 size_t size);
179
180/* ==================== [Macros] ============================================ */
181 /* xt_hal_spi */
183
184#ifdef __cplusplus
185} /* extern "C" */
186#endif
187
188#endif /* __XT_HAL_SPI_H__ */
int32_t xt_err_t
错误码类型
void xt_hal_spi_set_cb(uint8_t spi_id, xt_hal_spi_cb_t cb)
设置 SPI 回调函数
int32_t xt_hal_spim_txrx_block(uint8_t spi_id, const void *tx_buffer, void *rx_buffer, size_t size)
阻塞全双工传输
void(* xt_hal_spi_cb_t)(uint8_t spi_id, uint32_t event_id)
SPI 回调函数类型定义
int32_t xt_hal_spim_rx_0copy(uint8_t spi_id, void *rx_buffer, size_t size)
非阻塞 0 拷贝接收
int32_t xt_hal_spim_tx_0copy(uint8_t spi_id, const void *tx_buffer, size_t size)
非阻塞 0 拷贝发送
int32_t xt_hal_spim_tx_block(uint8_t spi_id, const void *tx_buffer, size_t size)
阻塞发送
xt_err_t xt_hal_spim_close(uint8_t spi_id)
关闭 SPI Master
xt_hal_spi_event_id
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
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_rx_block(uint8_t spi_id, void *rx_buffer, size_t size)
阻塞接收
@ XT_HAL_SPI_EVENT_DONE
XTINY HAL 内部公共头文件