Initial import of NFC GNSS SDK project

This commit is contained in:
chenjintao
2026-09-15 16:10:12 +08:00
commit 2746cc3d4e
3070 changed files with 892062 additions and 0 deletions
@@ -0,0 +1,274 @@
#ifndef _QL_LCD_H_
#define _QL_LCD_H_
typedef enum QL_SPI_LCD_CLK_ENUM {
QL_SPI_LCD_CLK_6_5M = 0,
QL_SPI_LCD_CLK_13M ,
QL_SPI_LCD_CLK_26M ,
QL_SPI_LCD_CLK_52M ,
QL_SPI_LCD_CLK_3_25M, // the following three options is only for craneM
QL_SPI_LCD_CLK_1_625M,
QL_SPI_LCD_CLK_812_5k,
QL_SPI_CLK_LIMIT
}QL_SPI_LCD_CLK_E;
enum{
LCD_WORK_MODE_POLLING,
LCD_WORK_MODE_DMA,
LCD_WORK_MODE_LIMIT
};
enum{
LCD_TYPE_RGB = 0,
LCD_TYPE_FSTN = 1,
LCD_TYPE_LIMIT
};
enum {
QL_LCD_CMD = 0,
QL_LCD_DATA,
QL_LCD_DELAY,
};
enum{
QL_SPI_FORMAT_RGB565 = 0,
QL_SPI_FORMAT_RGB666 = 1,
QL_SPI_FORMAT_RGB666_2_3 = 2,
QL_SPI_FORMAT_RGB888 = 3,
QL_SPI_FORMAT_RGB888_2_3 = 4,
QL_SPI_FORMAT_LIMIT
};
enum{
QL_SPI_EDGE_RISING = 0,
QL_SPI_EDGE_FALLING = 1,
QL_SPI_EDGE_LIMIT
};
enum{
QL_SPI_ENDIAN_LSB = 0,
QL_SPI_ENDIAN_MSB = 1,
QL_SPI_ENDIAN_LIMIT
};
enum{
QL_LCD_CAP_NORMALE = 0,
QL_LCD_CAP_FAKE = 1,
QL_LCD_CAP_POWERON = 2,
QL_LCD_CAP_NOTE = 4, /*has no te signal*/
QL_LCD_CAP_LIMIT
};
typedef struct ql_spi_lcd_write_struct {
unsigned char type; /* SPI_WRITE_CMD / SPI_WRITE_DATA / SPI_WRITE_DELAY */
unsigned char value;
unsigned char data_length; /* Only for SPI_WRITE_CMD */
}ql_spi_lcd_write_t;
typedef struct ql_lcd_data_struct
{
ql_spi_lcd_write_t* init_para; //lcd初始化参数,可选
unsigned int init_para_len; //初始化参数长度
unsigned short width; //lcd宽
unsigned short height; //lcd高
unsigned char lcd_cmd_col_set; //可选
unsigned char lcd_cmd_row_set; //可选
unsigned char lcd_cmd_mem_wr; //可选
unsigned int te_signal; //te控制
unsigned int spi_wclk; //写时序的时钟
unsigned int spi_rclk; //读时序的时钟
unsigned int lcd_id; //lcd_id
unsigned short format; //刷图格式只支持rgb565
unsigned short type; //rgb or 黑白屏
unsigned short sample_edge; //spi边沿检测
unsigned short endian; //大小端设置
unsigned short line_num; //4 or 3
unsigned short data_line; //1 or 2
unsigned char work_mode; //工作模式dmaorpolling
}ql_lcd_data_t;
typedef enum
{
LCD_SLEEP,
LCD_WAKE_UP,
}QL_LCD_SLEEP;
/***********************************************************************
*
* Name: ql_lcd_init
*
* Description: 初始化lcd——spi控制器
*
* Parameters: 初始化参数
*
* Returns: 0:send_success
* other: faile
* Notes:
*
***********************************************************************/
int ql_lcd_init(ql_lcd_data_t *lcd_data);
/***********************************************************************
*
* Name: ql_lcd_clear_screen
*
* Description: 清屏函数
*
* Parameters: rgb565色度值
*
* Returns: 0:send_success
* other: faile
* Notes:
*
***********************************************************************/
int ql_lcd_clear_screen(unsigned short bg_color);
/***********************************************************************
*
* Name: ql_lcd_clear_screen
*
* Description: 清屏函数
*
* Parameters: 保持lcd唤醒
*
* Returns: 0:send_success
* other: faile
* Notes:
*
***********************************************************************/
int ql_lcd_wakeup(unsigned int level);
/***********************************************************************
*
* Name: ql_lcd_display_on
*
* Description: 开始刷屏
*
* Parameters: none
*
* Returns: 0:send_success
* other: faile
* Notes:
*
***********************************************************************/
int ql_lcd_display_on(void);
/***********************************************************************
*
* Name: ql_lcd_display_off
*
* Description: 停止刷屏
*
* Parameters: 保持lcd唤醒
*
* Returns: 0:send_success
* other: faile
* Notes:
*
***********************************************************************/
int ql_lcd_display_off(void);
/***********************************************************************
*
* Name: ql_spi_lcd_write_cmd
*
* Description: 往lcd写指令
*
* Parameters: 要写的指令
*
* Returns: 0:send_success
* other: faile
* Notes:
*
***********************************************************************/
int ql_spi_lcd_write_cmd(unsigned char cmd);
/***********************************************************************
*
* Name: qql_spi_lcd_write_data
*
* Description: 往lcd写数据
*
* Parameters: 要写的数据
*
* Returns: 0:send_success
* other: faile
* Notes:
*
***********************************************************************/
int ql_spi_lcd_write_data(unsigned char data);
/***********************************************************************
*
* Name: ql_lcd_updata_config
*
* Description: 更新lcd驱动参数
*
* Parameters: 初始化参数
*
* Returns: 0:send_success
* other: faile
* Notes:
*
***********************************************************************/
int ql_lcd_updata_config(ql_lcd_data_t *lcd_data);
/***********************************************************************
*
* Name: ql_lcd_write_sync
*
* Description: lcd刷图函数
*
* Parameters: pbuffer:图片buffer
* start_x:图片起始位置横坐标
* start_y:图片起始位置纵坐标
* end_x: 图片结束位置横坐标
* end_y: 图片结束位置纵坐标
* Returns: 0:send_success
* other: faile
* Notes:
*
***********************************************************************/
int ql_lcd_write_sync(unsigned char *pbuffer, unsigned short start_x, unsigned short start_y, unsigned short end_x, unsigned short end_y);
/***********************************************************************
*
* Name: ql_lcd_read_id
*
* Description: 获取lcd芯片id
*
* Parameters: none
*
* Returns: 0:send_success
* other: faile
* Notes:
*
***********************************************************************/
unsigned int ql_lcd_read_id(void);
/***********************************************************************
*
* Name: ql_lcd_write
*
* Description: lcd异步刷新 仅1609支持此接口
*
* Parameters:
*
* Returns:
*
* Notes:
*
***********************************************************************/
int ql_lcd_write(unsigned char *pbuffer, unsigned short start_x, unsigned short start_y, unsigned short end_x, unsigned short end_y);
/***********************************************************************
*
* Name: ql_lcd_osd_config
*
* Description: 配置lcd的背景图层,仅1609支持
*
* Parameters:
*
* Returns:
*
* Notes:
*
***********************************************************************/
int ql_lcd_osd_config(unsigned char *pbuffer, unsigned short start_x, unsigned short start_y, unsigned short end_x, unsigned short end_y);
#endif