Files
stc32g128k/Drivers/lcd.h

161 lines
6.2 KiB
C
Raw Normal View History

#ifndef __LCD_H__
#define __LCD_H__
#include "../App/config.h"
#include "stc32g.h"
/* ====== Truly AMOLED RM69310 屏幕驱动 (RGB565格式) 常数定义 ====== */
// 16位 RGB565 颜色常量定义:
// 格式为Red(5位) Green(6位) Blue(5位) 拼接而成的 16 位整数值
#define COLOR_BLACK 0x0000 // 黑色
#define COLOR_WHITE 0xFFFF // 白色
#define COLOR_CYAN 0x073F // 青色/天蓝色
#define COLOR_RED 0xF800 // 红色
#define COLOR_GREEN 0x07E0 // 绿色
#define COLOR_BLUE 0x001F // 蓝色
#define COLOR_GRAY 0x5AEB // 灰色
#define COLOR_AMBER 0xFDC0 // 琥珀色/橙黄色
/* ====== 屏幕电源控制与基本驱动接口 ====== */
/**
* @brief SGM3833
* @param pulse_cnt ( 27 )
* @details 线沿 RM69310
*/
void SGM_SendPulse(u8 pulse_cnt);
/**
* @brief Truly AMOLED
* @details LCD_RST 使
*/
void LCD_Reset(void);
/**
* @brief Truly AMOLED RM69310
* @details SPI 线
* (Sleep Out: 0x11) (Display On: 0x29)
* 使
*/
void LCD_Init(void);
/**
* @brief 1
* @param cmd 8
*/
void WriteComm(u8 cmd);
/**
* @brief ()
* @param x_start X (0 ~ 119)
* @param x_end X (0 ~ 119)
* @param y_start Y (0 ~ 239)
* @param y_end Y (0 ~ 239)
* @details
*/
void LCD_SetWindow(u16 x_start, u16 x_end, u16 y_start, u16 y_end);
/**
* @brief
* @param color 16 RGB565
*/
void LCD_Clear(u16 color);
/* ====== 像素级图形几何算法与字符渲染接口 ====== */
/**
* @brief
* @param x X
* @param y Y
* @param w
* @param h
* @param color 16 RGB565
*/
void LCD_FillRect(u16 x, u16 y, u16 w, u16 h, u16 color);
/**
* @brief
* @param x X
* @param y Y
* @param w
* @param h
* @param color 16 RGB565 线
*/
void LCD_DrawRectBorder(u16 x, u16 y, u16 w, u16 h, u16 color);
/**
* @brief
* @param x X
* @param y Y
* @param w (: )
* @param h
* @param bmp FLASH code (1110)
* @param color (RGB565)
* @param bg_color
*/
void LCD_DrawMonoBitmap(u16 x, u16 y, u16 w, u16 h, unsigned char code *bmp, u16 color, u16 bg_color);
/**
* @brief 8x16 ASCII
*/
void LCD_ShowChar8x16(u16 x, u16 y, char ch, u16 color, u16 bg_color);
/**
* @brief ASCII ()
* @param x X
* @param y Y
* @param str
* @param color (RGB565)
* @param bg_color
*/
void LCD_ShowString(u16 x, u16 y, char *str, u16 color, u16 bg_color);
/**
* @brief Y
* @param y Y (0 ~ 239)
* @param str
* @param color
* @param bg_color
*/
void LCD_ShowStringCentered(u16 y, char *str, u16 color, u16 bg_color);
/**
* @brief 16x32 /
*/
void LCD_ShowChar16x32(u16 x, u16 y, char ch, u16 color, u16 bg_color);
/**
* @brief 16x32 / ()
*/
void LCD_ShowString16x32(u16 x, u16 y, char *str, u16 color, u16 bg_color);
/**
* @brief Y 16x32
* @param y Y (0 ~ 239)
* @param str
* @param color
* @param bg_color
*/
void LCD_ShowString16x32Centered(u16 y, char *str, u16 color, u16 bg_color);
/* ====== 图标与点阵字模外部数据声明 ====== */
// 这些数据实体均定义在底层字库 lcd_font.h 文件中
extern unsigned char code FONT_8x16[95][16]; // 8x16 英文 ASCII 点阵字库
extern unsigned char code bmp_battery_20x10[]; // 20x10 电池电量指示位图
extern unsigned char code bmp_lock_16x16[]; // 16x16 闭合锁头位图
extern unsigned char code bmp_unlock_16x16[]; // 16x16 开启锁头位图
extern unsigned char code bmp_radar_32x32_f1[]; // 32x32 雷达扩散帧 1
extern unsigned char code bmp_radar_32x32_f2[]; // 32x32 雷达扩散帧 2
extern unsigned char code bmp_radar_32x32_f3[]; // 32x32 雷达扩散帧 3
extern unsigned char code bmp_confirm_lock_32x32[]; // 32x32 传感器类型锁头大图
extern unsigned char code bmp_checkmark_32x32[]; // 32x32 配对成功大对勾
extern unsigned char code bmp_cross_32x32[]; // 32x32 配对失败大红叉
extern unsigned char code bmp_door_32x32[]; // 32x32 门磁大警告图标
extern unsigned char code bmp_siren_32x32[]; // 32x32 烟感喇叭警示图标
#endif // __LCD_H__