xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_hal_spilcd.h
浏览该文件的文档.
1
12
13#ifndef __XT_HAL_SPILCD_H__
14#define __XT_HAL_SPILCD_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/* LCD SPI协议配置 */
34#define XT_HAL_SPILCD_SPI_BIDIR_S (0)
35#define XT_HAL_SPILCD_SPI_BIDIR_W (1)
36#define XT_HAL_SPILCD_SPI_DCX_S (1)
37#define XT_HAL_SPILCD_SPI_DCX_W (1)
38#define XT_HAL_SPILCD_SAMP_SEL_S (2)
39#define XT_HAL_SPILCD_SAMP_SEL_W (1)
40#define XT_HAL_SPILCD_READ_DMY_CYC_S (3)
41#define XT_HAL_SPILCD_READ_DMY_CYC_W (4)
42#define XT_HAL_SPILCD_RGB565_SWAP_S (7)
43#define XT_HAL_SPILCD_RGB565_SWAP_W (1)
44
45/* LCD SPI双向模式 */
46#define XT_HAL_SPILCD_SPI_UNIDIR ((0) << XT_HAL_SPILCD_SPI_BIDIR_S)
47#define XT_HAL_SPILCD_SPI_BIDIR ((1) << XT_HAL_SPILCD_SPI_BIDIR_S)
48
49/* LCD DCX控制 */
50#define XT_HAL_SPILCD_DCX_ENCODED ((0) << XT_HAL_SPILCD_SPI_DCX_S)
51#define XT_HAL_SPILCD_DCX_DEDICATED ((1) << XT_HAL_SPILCD_SPI_DCX_S)
52
53/* LCD采样时钟 */
54#define XT_HAL_SPILCD_SAMPLE_RISE ((0) << XT_HAL_SPILCD_SAMP_SEL_S)
55#define XT_HAL_SPILCD_SAMPLE_FALL ((1) << XT_HAL_SPILCD_SAMP_SEL_S)
56
57/* LCD虚拟周期 */
58#define XT_HAL_SPILCD_DUMMY_CYCLE(n) ((n) << XT_HAL_SPILCD_READ_DMY_CYC_S)
59
60/* LCD RGB565字节交换 */
61#define XT_HAL_SPILCD_RGB565_NORMAL ((0) << XT_HAL_SPILCD_RGB565_SWAP_S)
62#define XT_HAL_SPILCD_RGB565_SWAP ((1) << XT_HAL_SPILCD_RGB565_SWAP_S)
63
64/* ==================== [Typedefs] ========================================== */
65
73
80typedef void (*xt_hal_spilcd_cb_t)(uint8_t lcd_id, uint32_t event_id);
81
82/* ==================== [Global Prototypes] ================================= */
83
102 uint8_t csx_pin, uint8_t scl_pin, uint8_t sdi_pin,
103 uint8_t sdo_pin, uint8_t dcx_pin);
104
112
121
129xt_err_t xt_hal_spilcd_set_sample_edge(uint8_t lcd_id, bool falling);
130
138xt_err_t xt_hal_spilcd_set_rgb565_swap(uint8_t lcd_id, bool enable);
139
150xt_err_t xt_hal_spilcd_set_freq(uint8_t lcd_id, uint32_t freq_hz);
151
161int32_t xt_hal_spilcd_tx_param_block(uint8_t lcd_id, uint8_t cmd, const uint8_t *param, uint32_t len);
162
172int32_t xt_hal_spilcd_rx_param_block(uint8_t lcd_id, uint8_t cmd, uint8_t *param, uint32_t len);
173
185int32_t xt_hal_spilcd_tx_data_0copy(uint8_t lcd_id, uint8_t cmd, const uint8_t *data, uint32_t len);
186
198int32_t xt_hal_spilcd_tx_data_0copy_block(uint8_t lcd_id, uint8_t cmd, const uint8_t *data, uint32_t len);
199
200/* ==================== [Macros] ============================================ */
201 /* xt_hal_spilcd */
203
204/* 以下三个函数已过时,不再支持,保留宏定义仅用于兼容旧代码 */
205#define xt_hal_spilcd_set_spi_bidir(lcd_id, enable) ((void)(lcd_id), (void)(enable))
206#define xt_hal_spilcd_set_dcx_mode(lcd_id, dedicated) ((void)(lcd_id), (void)(dedicated))
207#define xt_hal_spilcd_set_dummy_cycles(lcd_id, cycles) ((void)(lcd_id), (void)(cycles))
208
209#ifdef __cplusplus
210} /* extern "C" */
211#endif
212
213#endif /* __XT_HAL_SPILCD_H__ */
int32_t xt_err_t
错误码类型
xt_err_t xt_hal_spilcd_set_sample_edge(uint8_t lcd_id, bool falling)
设置采样时钟沿
int32_t xt_hal_spilcd_tx_data_0copy(uint8_t lcd_id, uint8_t cmd, const uint8_t *data, uint32_t len)
非阻塞0拷贝发送LCD SPI数据
xt_hal_spilcd_event_id
LCD事件类型枚举
int32_t xt_hal_spilcd_rx_param_block(uint8_t lcd_id, uint8_t cmd, uint8_t *param, uint32_t len)
阻塞式读取LCD SPI参数
xt_err_t xt_hal_spilcd_setup(uint8_t lcd_id, uint8_t csx_pin, uint8_t scl_pin, uint8_t sdi_pin, uint8_t sdo_pin, uint8_t dcx_pin)
初始化LCD SPI接口
xt_err_t xt_hal_spilcd_set_rgb565_swap(uint8_t lcd_id, bool enable)
设置RGB565字节交换
xt_err_t xt_hal_spilcd_set_freq(uint8_t lcd_id, uint32_t freq_hz)
设置LCD SPI时钟频率
int32_t xt_hal_spilcd_tx_data_0copy_block(uint8_t lcd_id, uint8_t cmd, const uint8_t *data, uint32_t len)
阻塞0拷贝发送LCD SPI数据
int32_t xt_hal_spilcd_tx_param_block(uint8_t lcd_id, uint8_t cmd, const uint8_t *param, uint32_t len)
阻塞式发送LCD SPI参数
xt_err_t xt_hal_spilcd_set_cb(uint8_t lcd_id, xt_hal_spilcd_cb_t cb)
设置LCD SPI回调函数
xt_err_t xt_hal_spilcd_close(uint8_t lcd_id)
关闭LCD SPI接口
void(* xt_hal_spilcd_cb_t)(uint8_t lcd_id, uint32_t event_id)
LCD回调函数类型
@ XT_HAL_SPILCD_EVENT_DONE
@ XT_HAL_SPILCD_EVENT_ERROR
XTINY HAL 内部公共头文件