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

LCD SPI HAL层接口 更多...

宏定义

#define XT_HAL_SPILCD_SPI_BIDIR_S   (0)
#define XT_HAL_SPILCD_SPI_BIDIR_W   (1)
#define XT_HAL_SPILCD_SPI_DCX_S   (1)
#define XT_HAL_SPILCD_SPI_DCX_W   (1)
#define XT_HAL_SPILCD_SAMP_SEL_S   (2)
#define XT_HAL_SPILCD_SAMP_SEL_W   (1)
#define XT_HAL_SPILCD_READ_DMY_CYC_S   (3)
#define XT_HAL_SPILCD_READ_DMY_CYC_W   (4)
#define XT_HAL_SPILCD_RGB565_SWAP_S   (7)
#define XT_HAL_SPILCD_RGB565_SWAP_W   (1)
#define XT_HAL_SPILCD_SPI_UNIDIR   ((0) << XT_HAL_SPILCD_SPI_BIDIR_S)
#define XT_HAL_SPILCD_SPI_BIDIR   ((1) << XT_HAL_SPILCD_SPI_BIDIR_S)
#define XT_HAL_SPILCD_DCX_ENCODED   ((0) << XT_HAL_SPILCD_SPI_DCX_S)
#define XT_HAL_SPILCD_DCX_DEDICATED   ((1) << XT_HAL_SPILCD_SPI_DCX_S)
#define XT_HAL_SPILCD_SAMPLE_RISE   ((0) << XT_HAL_SPILCD_SAMP_SEL_S)
#define XT_HAL_SPILCD_SAMPLE_FALL   ((1) << XT_HAL_SPILCD_SAMP_SEL_S)
#define XT_HAL_SPILCD_DUMMY_CYCLE(n)
#define XT_HAL_SPILCD_RGB565_NORMAL   ((0) << XT_HAL_SPILCD_RGB565_SWAP_S)
#define XT_HAL_SPILCD_RGB565_SWAP   ((1) << XT_HAL_SPILCD_RGB565_SWAP_S)

类型定义

typedef void(* xt_hal_spilcd_cb_t) (uint8_t lcd_id, uint32_t event_id)
 LCD回调函数类型

枚举

enum  xt_hal_spilcd_event_id { XT_HAL_SPILCD_EVENT_DONE = 0x00 , XT_HAL_SPILCD_EVENT_ERROR }
 LCD事件类型枚举 更多...

函数

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_close (uint8_t lcd_id)
 关闭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_set_sample_edge (uint8_t lcd_id, bool falling)
 设置采样时钟沿
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_param_block (uint8_t lcd_id, uint8_t cmd, const uint8_t *param, uint32_t len)
 阻塞式发送LCD SPI参数
int32_t xt_hal_spilcd_rx_param_block (uint8_t lcd_id, uint8_t cmd, uint8_t *param, uint32_t len)
 阻塞式读取LCD SPI参数
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数据
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数据

详细描述

LCD SPI HAL层接口

宏定义说明

◆ XT_HAL_SPILCD_DCX_DEDICATED

#define XT_HAL_SPILCD_DCX_DEDICATED   ((1) << XT_HAL_SPILCD_SPI_DCX_S)

专用DCX引脚

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

◆ XT_HAL_SPILCD_DCX_ENCODED

#define XT_HAL_SPILCD_DCX_ENCODED   ((0) << XT_HAL_SPILCD_SPI_DCX_S)

DCX编码在数据中

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

◆ XT_HAL_SPILCD_DUMMY_CYCLE

#define XT_HAL_SPILCD_DUMMY_CYCLE ( n)
值:
#define XT_HAL_SPILCD_READ_DMY_CYC_S

虚拟周期数

在文件 xt_hal_spilcd.h 第 58 行定义.

◆ XT_HAL_SPILCD_READ_DMY_CYC_S

#define XT_HAL_SPILCD_READ_DMY_CYC_S   (3)

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

◆ XT_HAL_SPILCD_READ_DMY_CYC_W

#define XT_HAL_SPILCD_READ_DMY_CYC_W   (4)

在文件 xt_hal_spilcd.h 第 41 行定义.

◆ XT_HAL_SPILCD_RGB565_NORMAL

#define XT_HAL_SPILCD_RGB565_NORMAL   ((0) << XT_HAL_SPILCD_RGB565_SWAP_S)

正常序

在文件 xt_hal_spilcd.h 第 61 行定义.

◆ XT_HAL_SPILCD_RGB565_SWAP

#define XT_HAL_SPILCD_RGB565_SWAP   ((1) << XT_HAL_SPILCD_RGB565_SWAP_S)

交换序

在文件 xt_hal_spilcd.h 第 62 行定义.

◆ XT_HAL_SPILCD_RGB565_SWAP_S

#define XT_HAL_SPILCD_RGB565_SWAP_S   (7)

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

◆ XT_HAL_SPILCD_RGB565_SWAP_W

#define XT_HAL_SPILCD_RGB565_SWAP_W   (1)

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

◆ XT_HAL_SPILCD_SAMP_SEL_S

#define XT_HAL_SPILCD_SAMP_SEL_S   (2)

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

◆ XT_HAL_SPILCD_SAMP_SEL_W

#define XT_HAL_SPILCD_SAMP_SEL_W   (1)

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

◆ XT_HAL_SPILCD_SAMPLE_FALL

#define XT_HAL_SPILCD_SAMPLE_FALL   ((1) << XT_HAL_SPILCD_SAMP_SEL_S)

下降沿采样

在文件 xt_hal_spilcd.h 第 55 行定义.

◆ XT_HAL_SPILCD_SAMPLE_RISE

#define XT_HAL_SPILCD_SAMPLE_RISE   ((0) << XT_HAL_SPILCD_SAMP_SEL_S)

上升沿采样

在文件 xt_hal_spilcd.h 第 54 行定义.

◆ XT_HAL_SPILCD_SPI_BIDIR

#define XT_HAL_SPILCD_SPI_BIDIR   ((1) << XT_HAL_SPILCD_SPI_BIDIR_S)

双向模式

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

◆ XT_HAL_SPILCD_SPI_BIDIR_S

#define XT_HAL_SPILCD_SPI_BIDIR_S   (0)

在文件 xt_hal_spilcd.h 第 34 行定义.

◆ XT_HAL_SPILCD_SPI_BIDIR_W

#define XT_HAL_SPILCD_SPI_BIDIR_W   (1)

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

◆ XT_HAL_SPILCD_SPI_DCX_S

#define XT_HAL_SPILCD_SPI_DCX_S   (1)

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

◆ XT_HAL_SPILCD_SPI_DCX_W

#define XT_HAL_SPILCD_SPI_DCX_W   (1)

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

◆ XT_HAL_SPILCD_SPI_UNIDIR

#define XT_HAL_SPILCD_SPI_UNIDIR   ((0) << XT_HAL_SPILCD_SPI_BIDIR_S)

单向模式

在文件 xt_hal_spilcd.h 第 46 行定义.

类型定义说明

◆ xt_hal_spilcd_cb_t

typedef void(* xt_hal_spilcd_cb_t) (uint8_t lcd_id, uint32_t event_id)

LCD回调函数类型

参数
lcd_idLCD硬件ID
event_id事件类型,见xt_hal_spilcd_event_id

在文件 xt_hal_spilcd.h 第 80 行定义.

枚举类型说明

◆ xt_hal_spilcd_event_id

LCD事件类型枚举

枚举值
XT_HAL_SPILCD_EVENT_DONE 

LCD传输完成

XT_HAL_SPILCD_EVENT_ERROR 

LCD传输错误

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

函数说明

◆ xt_hal_spilcd_close()

xt_err_t xt_hal_spilcd_close ( uint8_t lcd_id)

关闭LCD SPI接口

参数
lcd_idLCD硬件ID
返回
xt_err_t 成功返回XT_EOK,失败返回错误码

◆ xt_hal_spilcd_rx_param_block()

int32_t xt_hal_spilcd_rx_param_block ( uint8_t lcd_id,
uint8_t cmd,
uint8_t * param,
uint32_t len )

阻塞式读取LCD SPI参数

参数
lcd_idLCD硬件ID
cmd命令字节
param参数数据缓冲区
len参数数据长度
返回
int32_t 成功返回读取字节数,失败返回负数

◆ xt_hal_spilcd_set_cb()

xt_err_t xt_hal_spilcd_set_cb ( uint8_t lcd_id,
xt_hal_spilcd_cb_t cb )

设置LCD SPI回调函数

参数
lcd_idLCD硬件ID
cb回调函数指针
返回
xt_err_t 成功返回XT_EOK,失败返回错误码

◆ xt_hal_spilcd_set_freq()

xt_err_t xt_hal_spilcd_set_freq ( uint8_t lcd_id,
uint32_t freq_hz )

设置LCD SPI时钟频率

具体支持的频率档位取决于平台实现,向下取最近档位。 以 lm620 平台为例,支持: 13MHz, 26MHz, 39MHz, 52MHz。

参数
lcd_idLCD硬件ID
freq_hz频率值(Hz),超出范围自动取边界档位
返回
xt_err_t 成功返回XT_EOK,失败返回错误码

◆ xt_hal_spilcd_set_rgb565_swap()

xt_err_t xt_hal_spilcd_set_rgb565_swap ( uint8_t lcd_id,
bool enable )

设置RGB565字节交换

参数
lcd_idLCD硬件ID
enabletrue:启用字节交换, false:正常序
返回
xt_err_t 成功返回XT_EOK,失败返回错误码

◆ xt_hal_spilcd_set_sample_edge()

xt_err_t xt_hal_spilcd_set_sample_edge ( uint8_t lcd_id,
bool falling )

设置采样时钟沿

参数
lcd_idLCD硬件ID
fallingtrue:下降沿采样, false:上升沿采样
返回
xt_err_t 成功返回XT_EOK,失败返回错误码

◆ xt_hal_spilcd_setup()

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接口

根据传入引脚自动判断 SPI 模式:

  • dcx_pin 有效 -> 专用 DCX 引脚 (4 线),dummy = 8
  • dcx_pin 无效 -> DCX 编码在数据中 (3 线),dummy = 9
  • sdi_pin/sdo_pin 都有效 -> 单向 SPI
  • 否则 -> 双向 SPI
参数
lcd_idLCD硬件ID,取值范围[0]
csx_pinCSX引脚号
scl_pinSCL引脚号
sdi_pinSDI引脚号
sdo_pinSDO引脚号
dcx_pinDCX引脚号
返回
xt_err_t 成功返回XT_EOK,失败返回错误码

◆ xt_hal_spilcd_tx_data_0copy()

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数据

参数
lcd_idLCD硬件ID
cmd命令字节
data数据缓冲区
len数据长度
返回
int32_t 成功返回发送字节数,失败返回负数
注解
接口返回时开始传输,数据缓冲区被外设占用,传输完成后通过回调通知用户

◆ xt_hal_spilcd_tx_data_0copy_block()

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数据

参数
lcd_idLCD硬件ID
cmd命令字节
data数据缓冲区
len数据长度
返回
int32_t 成功返回发送字节数,失败返回负数
注解
接口返回时传输完成,传输完成前也会调用回调通知用户

◆ xt_hal_spilcd_tx_param_block()

int32_t xt_hal_spilcd_tx_param_block ( uint8_t lcd_id,
uint8_t cmd,
const uint8_t * param,
uint32_t len )

阻塞式发送LCD SPI参数

参数
lcd_idLCD硬件ID
cmd命令字节
param参数数据缓冲区
len参数数据长度
返回
int32_t 成功返回发送字节数,失败返回负数