101 lines
3.9 KiB
C
Raw Normal View History

2024-11-06 22:26:06 +08:00
#ifndef __LCD_H
#define __LCD_H
#include "sys.h"
/*********************************************************************************
___ _ _____ _____ _ _ _____ _____ _ __
/ _ \ | | |_ _|| ___|| \ | ||_ _|| ___|| | / /
/ /_\ \| | | | | |__ | \| | | | | |__ | |/ /
| _ || | | | | __| | . ` | | | | __| | \
| | | || |_____| |_ | |___ | |\ | | | | |___ | |\ \
\_| |_/\_____/\___/ \____/ \_| \_/ \_/ \____/ \_| \_/
* ******************************************************************************
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD>ѧϰʹ<EFBFBD>ã<EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD>;
* ALIENTEK Pandora STM32L475 IOT<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* LCD TFT<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><EFBFBD>@ALIENTEK
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̳:www.openedv.com
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:2018/10/27
* <EFBFBD><EFBFBD><EFBFBD>V1.0
* <EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD><EFBFBD><EFBFBD>
* Copyright(C) <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿƼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>޹<EFBFBD>˾ 2014-2024
* All rights reserved
* ******************************************************************************
* <EFBFBD><EFBFBD>ʼ<EFBFBD>
* ******************************************************************************/
extern u16 POINT_COLOR; //Ĭ<>ϻ<EFBFBD><CFBB><EFBFBD><EFBFBD><EFBFBD>ɫ
extern u16 BACK_COLOR; //Ĭ<>ϱ<EFBFBD><CFB1><EFBFBD><EFBFBD><EFBFBD>ɫ
//LCD<43>Ŀ<EFBFBD><C4BF>͸߶<CDB8><DFB6><EFBFBD>
#define LCD_Width 240
#define LCD_Height 240
//<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 LIGHTGRAY 0XEF5B //dz<><C7B3>ɫ(PANNEL)
#define LGRAY 0XC618 //dz<><C7B3>ɫ(PANNEL),<2C><><EFBFBD><EFBFBD><E5B1B3>ɫ
#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>ɫ)
/*
LCD_PWR: PB7
LCD_RST: PB6
LCD_DC: PB4
LCD_CS: PD7
*/
#define LCD_PWR(n) (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET))
#define LCD_RST(n) (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_RESET))
#define LCD_DC(n) (n?HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_RESET))
#define LCD_CS(n) (n?HAL_GPIO_WritePin(GPIOD,GPIO_PIN_7,GPIO_PIN_SET):HAL_GPIO_WritePin(GPIOD,GPIO_PIN_7,GPIO_PIN_RESET))
void LCD_Init(void); //<2F><>ʼ<EFBFBD><CABC>
void LCD_DisplayOn(void); //<2F><><EFBFBD><EFBFBD>ʾ
void LCD_DisplayOff(void); //<2F><><EFBFBD><EFBFBD>ʾ
void LCD_Write_HalfWord(const u16 da); //д<><D0B4><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ݵ<EFBFBD>LCD
void LCD_Address_Set(u16 x1, u16 y1, u16 x2, u16 y2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
void LCD_Clear(u16 color); //<2F><><EFBFBD><EFBFBD>
void LCD_Fill(u16 x_start, u16 y_start, u16 x_end, u16 y_end, u16 color); //<2F><><EFBFBD>䵥ɫ
void LCD_Fill_Buf(u16 x_start, u16 y_start, u16 x_end, u16 y_end, u16* clr_buf); //<2F><><EFBFBD><EFBFBD>BUF
void LCD_Draw_Point(u16 x, u16 y); //<2F><><EFBFBD><EFBFBD>
void LCD_Draw_ColorPoint(u16 x, u16 y,u16 color); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>
void LCD_DrawLine(u16 x1, u16 y1, u16 x2, u16 y2); //<2F><><EFBFBD><EFBFBD>
void LCD_DrawRectangle(u16 x1, u16 y1, u16 x2, u16 y2); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_Draw_Circle(u16 x0, u16 y0, u8 r); //<2F><>Բ
void LCD_ShowChar(u16 x, u16 y, char chr, u8 size); //<2F><>ʾһ<CABE><D2BB><EFBFBD>ַ<EFBFBD>
void LCD_ShowNum(u16 x,u16 y,u32 num,u8 len,u8 size); //<2F><>ʾһ<CABE><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void LCD_ShowxNum(u16 x,u16 y,u32 num,u8 len,u8 size,u8 mode); //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
void LCD_ShowString(u16 x,u16 y,u16 width,u16 height,u8 size,char *p); //<2F><>ʾ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
void LCD_Show_Image(u16 x, u16 y, u16 width, u16 height, const u8 *p); //<2F><>ʾͼƬ
void Display_ALIENTEK_LOGO(u16 x,u16 y); //<2F><>ʾALIENTEK LOGO
#endif