#ifndef __LCD_H #define __LCD_H ///////////////////////////加入项目的关联头文件//////////////////////////////////// #include "sys.h" #include "stdlib.h" #include "delay.h" #include "spi.h" extern uint16_t D_Color; //点阵颜色 extern uint16_t B_Color; //背景颜色 ////////////////////////////////////////////////////////////////////////////////// //LCD液晶屏驱动程序 //DevEBox 大越创新 //淘宝店铺:mcudev.taobao.com //淘宝店铺:shop389957290.taobao.com //********************************************************************************// //数据类型定义 /* exact-width signed integer types */ typedef signed char int8_t; typedef signed short int int16_t; typedef signed int int32_t; typedef signed long long int64_t; /* exact-width unsigned integer types */ typedef unsigned char uint8_t; typedef unsigned short int uint16_t; typedef unsigned int uint32_t; typedef unsigned long long uint64_t; typedef uint32_t u32; typedef uint16_t u16; typedef uint8_t u8; /****************************************************************************** 接口定义,请根据接线修改并修改相应IO初始化--驱动板子和IO要对应 // #define LCD_SDI //PB15 //数据输入线 // #define LCD_SCL //PB13 //时钟线 // #define LCD_CS //PB12 //片选 // #define LCD_SDO //PB14 //数据输出/复位 // #define LCD_RS //PB1 //命令/数据切换 // #define LCD_BLK //PB0 //背光控制 *******************************************************************************/ //液晶控制口置1操作语句宏定义 #define LCD_SDA_SET HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET) //PB15置1 LCD_SDI: PB15 //数据输入线 #define LCD_SCL_SET HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13,GPIO_PIN_SET) //PB13置1 LCD_SCL: PB13 //时钟线 #define LCD_CS_SET HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_SET) //PB12置1 LCD_CS: PB12 //片选 #define LCD_RST_Set HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET) //PB14置1 LCD_SDO :PB14 //数据输出/复位 #define LCD_RS_SET HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET) //PB1置1 LCD_RS: PB1 //命令/数据切换 #define LCD_BLK_SET HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET) //PB0置1 LCD_BLK :PB0 //背光控制 //液晶控制口置0操作语句宏定义 #define LCD_SDA_CLR HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET) //PB15置0 //DIN LCD_SDI: PB15 //数据输入线 #define LCD_SCL_CLR HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13,GPIO_PIN_RESET) //PB13置0 //CLK LCD_SCL: PB13 //时钟线 #define LCD_CS_CLR HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_RESET) //PB12置0/CS LCD_CS: PB12 //片选 #define LCD_RST_Clr HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET) //PB14置0 //RES LCD_SDO :PB14 //数据输出/复位 #define LCD_RS_CLR HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET) //PB1置0 //DC LCD_RS: PB1 //命令/数据切换 #define LCD_BLK_CLR HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET) //PB0置0 //DIN LCD_BLK :PB0 //背光控制 #define LCD_BLK_On LCD_BLK_SET //开背光 LCD背光控制 #define LCD_BLK_Off LCD_BLK_CLR //关背光 LCD背光控制 //LCD重要参数集 typedef struct { u16 width; //LCD 宽度 u16 height; //LCD 高度 u16 id; //LCD ID u8 dir; //横屏还是竖屏控制:竖屏和横屏。 u16 wramcmd; //开始写gram指令 u16 setxcmd; //设置x坐标指令 u16 setycmd; //设置y坐标指令 }_lcd_dev; /////////////////////////////////////用户配置区/////////////////////////////////// //支持横竖屏快速定义切换 #define LCD_DIR_Mode 0 //4种工作模式,0和1是竖屏模式,2和3是横屏模式 #define USE_HORIZONTAL 0 //方向设置: 0,竖屏模式 1,横屏模式. ////////////////////////////////////////////////////////////////////////////////// //LCD参数 extern _lcd_dev lcddev; //管理LCD重要参数 //LCD的画笔颜色和背景色 extern u16 POINT_COLOR;//默认红色 extern u16 BACK_COLOR; //背景颜色.默认为白色 ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// //扫描方向定义--扫描方式有不同规格,可能定义不左右和上下的参照方向不同,总结方式,只有一下八种 #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 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 GRAY0 0xEF7D //灰色0 #define GRAY1 0x8410 //灰色1 #define GRAY2 0x4208 //灰色2 #define LGRAYBLUE 0xA651 //浅灰蓝色(中间层颜色) #define LBBLUE 0x2B12 //浅棕蓝色(选择条目的反色) ////////////////////////延时函数--宏定义///////////////////////////////////////////////// #define LCD_Delay_us delay_us //延时函数 #define LCD_Delay_ms delay_ms //延时函数 ////////////////////////硬件驱动-功能函数//////DevEBox 大越创新//////shop389957290.taobao.com/////////////////////////////////////////////////// void LCD_GPIO_Init(void); //液晶IO初始化配置 void LCD_WR_REG(vu16 regval); //液晶屏--写寄存器函数 void LCD_WR_DATA8(u8 data); //写8位数据 void LCD_WR_DATA16(vu16 data); //写16位数据 void LCD_Init(void); //初始化 void LCD_HardwareRest(void); //硬复位--如果IO连接,硬件复位可控有效 void LCD_SoftRest(void); //软复位 void LCD_DisplayOn(void); //开显示 void LCD_DisplayOff(void); //关显示 //////////////////以下函数是屏幕显示图形的简单驱动函数////////////DevEBox 大越创新//////shop389957290.taobao.com////////////////////////////////////// void LCD_Clear(u16 Color); //清屏 void LCD_SetCursor(u16 Xpos, u16 Ypos); //设置光标 void LCD_DrawPoint(u16 x,u16 y); //画点--使用设置的笔尖颜色 void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color); //快速画点--使用当前输入颜色参数 void LCD_Draw_Circle(u16 x0,u16 y0,u8 r, u16 Color); //画圆 void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2, u16 Color); //画线 void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2, u16 Color); //画矩形 void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color); //填充单色 void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color); //填充指定颜色 void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u16 color,u8 mode); //显示一个字符 void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size,u16 color); //显示一个数字 void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u16 color,u8 mode); //显示 数字 void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u16 color,u8 *p); //显示一个字符串,12/16字体 void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue); //写寄存器 void LCD_WriteRAM_Prepare(void); //开始写GRAM 命令 void LCD_WriteRAM(u16 RGB_Code); //LCD写GRAM void LCD_Scan_Dir(u8 dir); //设置屏扫描方向 void LCD_Display_Dir(u8 dir); //设置屏幕显示方向 void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height); //设置窗口 void Draw_Test(void);//绘图工具函数测试 void Color_Test(void);//颜色填充显示测试 void Font_Test(void);// 字体字形显示测试 void GBK_LibFont_Test(void);//GBK 字体字形显示测试 void Demo_Menu(void);//演示程序菜单 #endif /*******************************************************************************/ //DevEBox 大越创新 //淘宝店铺:mcudev.taobao.com //淘宝店铺:shop389957290.taobao.com /*******************************************************************************/