移植了LCD屏幕,FLASH字库
字库还有偏移问题未解决 Signed-off-by: 无闻风 <53944749+wuwenfengmi1998@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,253 @@
|
||||
/*
|
||||
* lcd.h
|
||||
*
|
||||
* Created on: Mar 11, 2021
|
||||
* Author: 13370
|
||||
*/
|
||||
|
||||
|
||||
#ifndef LCD_H_
|
||||
#define LCD_H_
|
||||
#include "c.h"
|
||||
#define LCD_BL(x) HAL_GPIO_WritePin(LCD_BL_GPIO_Port,LCD_BL_Pin,x)
|
||||
//LCD重要参数集
|
||||
typedef struct
|
||||
{
|
||||
uint16_t width; //LCD 宽度
|
||||
uint16_t height; //LCD 高度
|
||||
uint16_t id; //LCD ID
|
||||
uint8_t dir; //横屏还是竖屏控制:0,竖屏;1,横屏。
|
||||
uint8_t wramcmd; //开始写gram指令
|
||||
uint8_t setxcmd; //设置x坐标指令
|
||||
uint8_t setycmd; //设置y坐标指令
|
||||
}_lcd_dev;
|
||||
|
||||
extern _lcd_dev lcddev;
|
||||
|
||||
#define LCD_REG_ADDRESS *(__IO uint16_t *)(0x6C000000)
|
||||
#define LCD_DATA_ADDRESS *(__IO uint16_t *)(0x6C000800)
|
||||
|
||||
//扫描方向定义
|
||||
#define L2R_U2D 0 //从左到右,从上到下
|
||||
#define L2R_D2U 1 //从左到右,从下到上
|
||||
#define R2L_U2D 2 //从右到左,从上到下
|
||||
#define R2L_D2U 3 //从右到左,从下到上
|
||||
|
||||
#define U2D_L2R 4 //从上到下,从左到右
|
||||
#define U2D_R2L 5 //从上到下,从右到左
|
||||
#define D2U_L2R 6 //从下到上,从左到右
|
||||
#define D2U_R2L 7 //从下到上,从右到左
|
||||
|
||||
#define DFT_SCAN_DIR L2R_U2D //默认的扫描方向
|
||||
#define WHITE 0xFFFF
|
||||
#define BLACK 0x0000
|
||||
#define BLUE 0x001F
|
||||
#define BRED 0XF81F
|
||||
#define GRED 0XFFE0
|
||||
#define GBLUE 0X07FF
|
||||
#define RED 0xF800
|
||||
#define MAGENTA 0xF81F
|
||||
#define GREEN 0x07E0
|
||||
#define CYAN 0x7FFF
|
||||
#define YELLOW 0xFFE0
|
||||
#define BROWN 0XBC40 //棕色
|
||||
#define BRRED 0XFC07 //棕红色
|
||||
#define GRAY 0X8430 //灰色
|
||||
//GUI颜色
|
||||
|
||||
#define DARKBLUE 0X01CF //深蓝色
|
||||
#define LIGHTBLUE 0X7D7C //浅蓝色
|
||||
#define GRAYBLUE 0X5458 //灰蓝色
|
||||
//以上三色为PANEL的颜色
|
||||
|
||||
#define LIGHTGREEN 0X841F //浅绿色
|
||||
//#define LIGHTGRAY 0XEF5B //浅灰色(PANNEL)
|
||||
#define LGRAY 0XC618 //浅灰色(PANNEL),窗体背景色
|
||||
|
||||
#define LGRAYBLUE 0XA651 //浅灰蓝色(中间层颜色)
|
||||
#define LBBLUE 0X2B12 //浅棕蓝色(选择条目的反色)
|
||||
//9320/9325 LCD寄存器
|
||||
#define R0 0x00
|
||||
#define R1 0x01
|
||||
#define R2 0x02
|
||||
#define R3 0x03
|
||||
#define R4 0x04
|
||||
#define R5 0x05
|
||||
#define R6 0x06
|
||||
#define R7 0x07
|
||||
#define R8 0x08
|
||||
#define R9 0x09
|
||||
#define R10 0x0A
|
||||
#define R12 0x0C
|
||||
#define R13 0x0D
|
||||
#define R14 0x0E
|
||||
#define R15 0x0F
|
||||
#define R16 0x10
|
||||
#define R17 0x11
|
||||
#define R18 0x12
|
||||
#define R19 0x13
|
||||
#define R20 0x14
|
||||
#define R21 0x15
|
||||
#define R22 0x16
|
||||
#define R23 0x17
|
||||
#define R24 0x18
|
||||
#define R25 0x19
|
||||
#define R26 0x1A
|
||||
#define R27 0x1B
|
||||
#define R28 0x1C
|
||||
#define R29 0x1D
|
||||
#define R30 0x1E
|
||||
#define R31 0x1F
|
||||
#define R32 0x20
|
||||
#define R33 0x21
|
||||
#define R34 0x22
|
||||
#define R36 0x24
|
||||
#define R37 0x25
|
||||
#define R40 0x28
|
||||
#define R41 0x29
|
||||
#define R43 0x2B
|
||||
#define R45 0x2D
|
||||
#define R48 0x30
|
||||
#define R49 0x31
|
||||
#define R50 0x32
|
||||
#define R51 0x33
|
||||
#define R52 0x34
|
||||
#define R53 0x35
|
||||
#define R54 0x36
|
||||
#define R55 0x37
|
||||
#define R56 0x38
|
||||
#define R57 0x39
|
||||
#define R59 0x3B
|
||||
#define R60 0x3C
|
||||
#define R61 0x3D
|
||||
#define R62 0x3E
|
||||
#define R63 0x3F
|
||||
#define R64 0x40
|
||||
#define R65 0x41
|
||||
#define R66 0x42
|
||||
#define R67 0x43
|
||||
#define R68 0x44
|
||||
#define R69 0x45
|
||||
#define R70 0x46
|
||||
#define R71 0x47
|
||||
#define R72 0x48
|
||||
#define R73 0x49
|
||||
#define R74 0x4A
|
||||
#define R75 0x4B
|
||||
#define R76 0x4C
|
||||
#define R77 0x4D
|
||||
#define R78 0x4E
|
||||
#define R79 0x4F
|
||||
#define R80 0x50
|
||||
#define R81 0x51
|
||||
#define R82 0x52
|
||||
#define R83 0x53
|
||||
#define R96 0x60
|
||||
#define R97 0x61
|
||||
#define R106 0x6A
|
||||
#define R118 0x76
|
||||
#define R128 0x80
|
||||
#define R129 0x81
|
||||
#define R130 0x82
|
||||
#define R131 0x83
|
||||
#define R132 0x84
|
||||
#define R133 0x85
|
||||
#define R134 0x86
|
||||
#define R135 0x87
|
||||
#define R136 0x88
|
||||
#define R137 0x89
|
||||
#define R139 0x8B
|
||||
#define R140 0x8C
|
||||
#define R141 0x8D
|
||||
#define R143 0x8F
|
||||
#define R144 0x90
|
||||
#define R145 0x91
|
||||
#define R146 0x92
|
||||
#define R147 0x93
|
||||
#define R148 0x94
|
||||
#define R149 0x95
|
||||
#define R150 0x96
|
||||
#define R151 0x97
|
||||
#define R152 0x98
|
||||
#define R153 0x99
|
||||
#define R154 0x9A
|
||||
#define R157 0x9D
|
||||
#define R192 0xC0
|
||||
#define R193 0xC1
|
||||
#define R229 0xE5
|
||||
|
||||
//***************************************************
|
||||
|
||||
|
||||
//**************************************************几种快速接口
|
||||
//写寄存器函数
|
||||
//regval:寄存器值
|
||||
void LCD_WR_REG(uint16_t regval);
|
||||
//写LCD数据
|
||||
//data:要写入的值
|
||||
void LCD_WR_DATA(uint16_t data);
|
||||
//读LCD数据
|
||||
//返回值:读到的值
|
||||
uint16_t LCD_RD_DATA(void);
|
||||
//写寄存器
|
||||
//LCD_Reg:寄存器地址
|
||||
//LCD_RegValue:要写入的数据
|
||||
void LCD_WriteReg(uint16_t LCD_Reg, uint16_t LCD_RegValue);
|
||||
//读寄存器
|
||||
//LCD_Reg:寄存器地址
|
||||
//返回值:读到的数据
|
||||
uint16_t LCD_ReadReg(uint16_t LCD_Reg);
|
||||
//初始化lcd
|
||||
//该初始化函数可以初始化各种液晶!
|
||||
void LCDx_Init(void);
|
||||
//LCD开启显示
|
||||
void LCD_DisplayOn(void);
|
||||
//LCD关闭显示
|
||||
void LCD_DisplayOff(void);
|
||||
//设置光标位置
|
||||
//Xpos:横坐标
|
||||
//Ypos:纵坐标
|
||||
void LCD_SetCursor(uint16_t Xpos, uint16_t Ypos);
|
||||
//快速画点
|
||||
//x,y:坐标
|
||||
//color:颜色
|
||||
void LCD_Fast_DrawPoint(uint16_t x,uint16_t y,uint16_t color);
|
||||
//画点
|
||||
//x,y:坐标
|
||||
//POINT_COLOR:此点的颜色
|
||||
void LCD_set_dot(uint16_t x,uint16_t y,uint16_t color);
|
||||
//清屏函数
|
||||
//color:要清屏的填充色
|
||||
void LCD_Clear(uint16_t color);
|
||||
//在指定区域内填充单个颜色
|
||||
//(sx,sy),(ex,ey):填充矩形对角坐标,区域大小为:(ex-sx+1)*(ey-sy+1)
|
||||
//color:要填充的颜色
|
||||
void LCD_Fill(uint16_t sx,uint16_t sy,uint16_t ex,uint16_t ey,uint16_t color);
|
||||
//在指定区域内填充指定颜色块
|
||||
//(sx,sy),(ex,ey):填充矩形对角坐标,区域大小为:(ex-sx+1)*(ey-sy+1)
|
||||
//color:要填充的颜色
|
||||
void LCD_Color_Fill(uint16_t sx,uint16_t sy,uint16_t ex,uint16_t ey,const uint16_t *color);
|
||||
//从ILI93xx读出的数据为GBR格式,而我们写入的时候为RGB格式。
|
||||
//通过该函数转换
|
||||
//c:GBR格式的颜色值
|
||||
//返回值:RGB格式的颜色值
|
||||
uint16_t LCD_BGR2RGB(uint16_t c);
|
||||
//读取个某点的颜色值
|
||||
//x,y:坐标
|
||||
//返回值:此点的颜色
|
||||
uint16_t LCD_ReadPoint(uint16_t x,uint16_t y);
|
||||
//显示字符串
|
||||
//x,y:起点坐标
|
||||
//width,height:区域大小
|
||||
//size:字体大小
|
||||
//*p:字符串起始地址
|
||||
//***********************************2D
|
||||
void LCD_DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2,uint16_t color);
|
||||
//在指定位置画一个指定大小的圆
|
||||
//(x,y):中心点
|
||||
//r :半径
|
||||
void Draw_Circle(uint16_t x0,uint16_t y0,uint16_t r,uint16_t color);
|
||||
|
||||
|
||||
|
||||
#endif /* LCD_H_ */
|
||||
Reference in New Issue
Block a user