290 lines
8.5 KiB
C
Raw Normal View History

2021-07-28 13:15:22 +08:00
#ifndef __LCD_H
#define __LCD_H
///////////////////////////<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŀ<EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>////////////////////////////////////
#include "sys.h"
#include "stdlib.h"
#include "delay.h"
/************************************************************************************************/
//STM32H7<48><37><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>-HAL<41><EFBFBD><E2BAAF><EFBFBD>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/************************************************************************************************/
extern uint16_t D_Color; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
extern uint16_t B_Color; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
//////////////////////////////////////////////////////////////////////////////////
//2.0<EFBFBD><EFBFBD> 240x320 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LCD<43><44>ʾ LCD<43><44>ʾʵ<CABE><CAB5>
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
//********************************************************************************//
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
/* 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;
/******************************************************************************
<EFBFBD>ӿڶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸IJ<EFBFBD><EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>ӦIO<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӻ<EFBFBD>IOҪ<EFBFBD><EFBFBD>Ӧ
// #define LCD_SDI //PB15 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// #define LCD_SCL //PB13 //ʱ<><CAB1><EFBFBD><EFBFBD>
// #define LCD_CS //PB12 //Ƭѡ
// #define LCD_SDO //PB14 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>λ
// #define LCD_RS //PB1 //<2F><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
// #define LCD_BLK //PB0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
//Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8>
#define LCD_SDA_SET HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_SET) //PB15<31><35>1 LCD_SDI<44><49> PB15 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define LCD_SCL_SET HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13,GPIO_PIN_SET) //PB13<31><33>1 LCD_SCL<43><4C> PB13 //ʱ<><CAB1><EFBFBD><EFBFBD>
#define LCD_CS_SET HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_SET) //PB12<31><32>1 LCD_CS<43><53> PB12 //Ƭѡ
#define LCD_RST_Set HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET) //PB14<31><34>1 LCD_SDO <20><>PB14 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>λ
#define LCD_RS_SET HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET) //PB1<42><31>1 LCD_RS<52><53> PB1 //<2F><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
#define LCD_BLK_SET HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET) //PB0<42><30>1 LCD_BLK <20><>PB0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//Һ<><D2BA><EFBFBD><EFBFBD><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAB6A8>
#define LCD_SDA_CLR HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET) //PB15<31><35>0 //DIN LCD_SDI<44><49> PB15 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define LCD_SCL_CLR HAL_GPIO_WritePin(GPIOB,GPIO_PIN_13,GPIO_PIN_RESET) //PB13<31><33>0 //CLK LCD_SCL<43><4C> PB13 //ʱ<><CAB1><EFBFBD><EFBFBD>
#define LCD_CS_CLR HAL_GPIO_WritePin(GPIOB,GPIO_PIN_12,GPIO_PIN_RESET) //PB12<31><32>0/CS LCD_CS<43><53> PB12 //Ƭѡ
#define LCD_RST_Clr HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET) //PB14<31><34>0 //RES LCD_SDO <20><>PB14 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><>λ
#define LCD_RS_CLR HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET) //PB1<42><31>0 //DC LCD_RS<52><53> PB1 //<2F><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
#define LCD_BLK_CLR HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET) //PB0<42><30>0 //DIN LCD_BLK <20><>PB0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define LCD_BLK_On LCD_BLK_SET //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> LCD<43><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define LCD_BLK_Off LCD_BLK_CLR //<2F>ر<EFBFBD><D8B1><EFBFBD> LCD<43><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//LCD<43><44>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
u16 width; //LCD <20><><EFBFBD><EFBFBD>
u16 height; //LCD <20>߶<EFBFBD>
u16 id; //LCD ID
u8 dir; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD><EFBFBD><EFBFBD>
u16 wramcmd; //<2F><>ʼдgramָ<6D><D6B8>
u16 setxcmd; //<2F><><EFBFBD><EFBFBD>x<EFBFBD><78><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
u16 setycmd; //<2F><><EFBFBD><EFBFBD>y<EFBFBD><79><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
}_lcd_dev;
/////////////////////////////////////<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>///////////////////////////////////
//֧<>ֺ<EFBFBD><D6BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD><EFBFBD>л<EFBFBD>
#define LCD_DIR_Mode 0 //4<>ֹ<EFBFBD><D6B9><EFBFBD>ģʽ<C4A3><CABD>0<EFBFBD><30>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ<C4A3><CABD>1<EFBFBD><31>3<EFBFBD>Ǻ<EFBFBD><C7BA><EFBFBD>ģʽ
#define USE_HORIZONTAL 0 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD> 0,<2C><><EFBFBD><EFBFBD>ģʽ 1,<2C><><EFBFBD><EFBFBD>ģʽ.
//////////////////////////////////////////////////////////////////////////////////
//LCD<43><44><EFBFBD><EFBFBD>
extern _lcd_dev lcddev; //<2F><><EFBFBD><EFBFBD>LCD<43><44>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
//LCD<43>Ļ<EFBFBD><C4BB><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>ɫ
extern u16 POINT_COLOR;//Ĭ<>Ϻ<EFBFBD>ɫ
extern u16 BACK_COLOR; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ.Ĭ<><C4AC>Ϊ<EFBFBD><CEAA>ɫ
//////////////////////////////////////////////////////////////////////////////////
/////////////////////////// <20><>ɫֵ ///////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
#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 //<2F><>ɫ
#define BRRED 0xFC07 //<2F>غ<EFBFBD>ɫ
#define GRAY 0x8430 //<2F><>ɫ
//GUI<55><49>ɫ
#define DARKBLUE 0x01CF //<2F><><EFBFBD><EFBFBD>ɫ
#define LIGHTBLUE 0x7D7C //dz<><C7B3>ɫ
#define GRAYBLUE 0x5458 //<2F><><EFBFBD><EFBFBD>ɫ
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫΪPANEL<45><4C><EFBFBD><EFBFBD>ɫ
#define LIGHTGREEN 0x841F //dz<><C7B3>ɫ
#define LGRAY 0xC618 //dz<><C7B3>ɫ(PANNEL),<2C><><EFBFBD><EFBFBD><E5B1B3>ɫ
#define GRAY0 0xEF7D //<2F><>ɫ0
#define GRAY1 0x8410 //<2F><>ɫ1
#define GRAY2 0x4208 //<2F><>ɫ2
#define LGRAYBLUE 0xA651 //dz<><C7B3><EFBFBD><EFBFBD>ɫ(<28>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD>ɫ)
#define LBBLUE 0x2B12 //dz<><C7B3><EFBFBD><EFBFBD>ɫ(ѡ<><D1A1><EFBFBD><EFBFBD>Ŀ<EFBFBD>ķ<EFBFBD>ɫ)
////////////////////////<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>--<2D><EFBFBD><EAB6A8>/////////////////////////////////////////////////
#define LCD_Delay_us delay_us //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
#define LCD_Delay_ms delay_ms //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
////////////////////////Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD>ܺ<EFBFBD><DCBA><EFBFBD>//////DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>//////shop389957290.taobao.com///////////////////////////////////////////////////
//void SPI2_Init(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ<EFBFBD>SPI2<49>ij<EFBFBD>ʼ<EFBFBD><CABC>
//u8 SPI2_ReadWriteByte(u8 TxData); //SPI<50>ӿ<EFBFBD><D3BF><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><E4BAAF>
void LCD_GPIO_Init(void); //Һ<><D2BA>IO<49><4F>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_WR_REG(vu16 regval); //Һ<><D2BA><EFBFBD><EFBFBD>--д<>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_WR_DATA8(u8 data); //д8λ<38><CEBB><EFBFBD><EFBFBD>
void LCD_WR_DATA16(vu16 data); //д16λ<36><CEBB><EFBFBD><EFBFBD>
void LCD_Init(void); //<2F><>ʼ<EFBFBD><CABC>
void LCD_HardwareRest(void); //Ӳ<><D3B2>λ--<2D><><EFBFBD><EFBFBD>IO<49><4F><EFBFBD>ӣ<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD>λ<EFBFBD>ɿ<EFBFBD><C9BF><EFBFBD>Ч
void LCD_SoftRest(void); //<2F><><EFBFBD><EFBFBD>λ
void LCD_DisplayOn(void); //<2F><><EFBFBD><EFBFBD>ʾ
void LCD_DisplayOff(void); //<2F><><EFBFBD><EFBFBD>ʾ
//////////////////<2F><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾͼ<CABE>εļ<CEB5><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>////////////DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>//////shop389957290.taobao.com//////////////////////////////////////
void LCD_Clear(u16 Color); //<2F><><EFBFBD><EFBFBD>
void LCD_SetCursor(u16 Xpos, u16 Ypos); //<2F><><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>
void LCD_DrawPoint(u16 x,u16 y); //<2F><><EFBFBD><EFBFBD>--ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD>õıʼ<C4B1><CABC><EFBFBD>ɫ
void LCD_Fast_DrawPoint(u16 x,u16 y,u16 color); //<2F><><EFBFBD>ٻ<EFBFBD><D9BB><EFBFBD>--ʹ<>õ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>
void LCD_Draw_Circle(u16 x0,u16 y0,u8 r, u16 Color); //<2F><>Բ
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2, u16 Color); //<2F><><EFBFBD><EFBFBD>
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2, u16 Color); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 color); //<2F><><EFBFBD>䵥ɫ
void LCD_Color_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u16 *color); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>ɫ
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u16 color,u8 mode); //<2F><>ʾһ<CABE><D2BB><EFBFBD>ַ<EFBFBD>
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size,u16 color); //<2F><>ʾһ<CABE><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u16 color,u8 mode); //<2F><>ʾ <20><><EFBFBD><EFBFBD>
void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,u16 color,u8 *p); //<2F><>ʾһ<CABE><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>,12/16<31><36><EFBFBD><EFBFBD>
void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue); //д<>Ĵ<EFBFBD><C4B4><EFBFBD>
void LCD_WriteRAM_Prepare(void); //<2F><>ʼдGRAM <20><><EFBFBD><EFBFBD>
void LCD_WriteRAM(u16 RGB_Code); //LCDдGRAM
void LCD_Scan_Dir(u8 dir); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><E8B7BD>
void LCD_Display_Dir(u8 dir); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><C4BB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
void LCD_Set_Window(u16 sx,u16 sy,u16 width,u16 height); //<2F><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>
void Draw_Test(void);//<2F><>ͼ<EFBFBD><CDBC><EFBFBD>ߺ<EFBFBD><DFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void Color_Test(void);//<2F><>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
void Font_Test(void);// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
void GBK_LibFont_Test(void);//GBK <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
void Demo_Menu(void);//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
#endif
/*******************************************************************************/
//DevEBox <20><>Խ<EFBFBD><D4BD><EFBFBD><EFBFBD>
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>mcudev.taobao.com
//<2F>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD>̣<EFBFBD>shop389957290.taobao.com
/*******************************************************************************/