85 lines
2.8 KiB
C
85 lines
2.8 KiB
C
/*********************************************************************
|
|
* File Name : lcd.h
|
|
* Author : WCH
|
|
* Version : V1.0.0
|
|
* Date : 2023/8/15
|
|
* Description : file for lcd screen.
|
|
*********************************************************************************
|
|
* Copyright (c) 2023 Nanjing Qinheng Microelectronics Co., Ltd.
|
|
* Attention: This software (modified or not) and binary are used for
|
|
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
|
|
*******************************************************************************/
|
|
|
|
#ifndef __LCD_H
|
|
#define __LCD_H
|
|
#include "spi.h"
|
|
#include "stdio.h"
|
|
#include "stdlib.h"
|
|
#include "flash.h"
|
|
#include "config.h"
|
|
|
|
#define USE_HORIZONTAL 2
|
|
|
|
#if USE_HORIZONTAL == 0 || USE_HORIZONTAL == 1
|
|
#define LCD_W 240
|
|
#define LCD_H 320
|
|
#endif
|
|
|
|
#if USE_HORIZONTAL == 2 || USE_HORIZONTAL == 3
|
|
#define LCD_W 320
|
|
#define LCD_H 240
|
|
#endif
|
|
|
|
#define LCD_WIDTH LCD_W
|
|
#define LCD_HEIGHT LCD_H
|
|
|
|
#define LCD_SWAP16(x) ((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF))
|
|
|
|
#define RGB888_TO_RGB565(r, g, b) LCD_SWAP16((((r) & 0xF8) << 8) | (((g) & 0xFC) << 3) | (((b) & 0xF8) >> 3))
|
|
|
|
#define RGB24_TO_RGB565(rgb) LCD_SWAP16((((rgb) >> 8) & 0xF800) | (((rgb) >> 5) & 0x07E0) | (((rgb) >> 3) & 0x001F))
|
|
|
|
#define LCD_red RGB888_TO_RGB565(255, 0, 0)
|
|
#define LCD_green RGB888_TO_RGB565(0, 255, 0)
|
|
#define LCD_blue RGB888_TO_RGB565(0, 0, 255)
|
|
#define LCD_white RGB888_TO_RGB565(255, 255, 255)
|
|
#define LCD_gray RGB888_TO_RGB565(128, 128, 128)
|
|
#define LCD_black RGB888_TO_RGB565(0, 0, 0)
|
|
#define LCD_yellow RGB888_TO_RGB565(255, 255, 0)
|
|
|
|
#define LCD_WHITE LCD_white
|
|
#define LCD_BLACK LCD_black
|
|
#define LCD_BLUE LCD_blue
|
|
#define LCD_RED LCD_red
|
|
#define LCD_MAGENTA RGB888_TO_RGB565(255, 0, 255)
|
|
#define LCD_GREEN LCD_green
|
|
#define LCD_CYAN RGB888_TO_RGB565(0, 255, 255)
|
|
#define LCD_YELLOW LCD_yellow
|
|
#define LCD_BROWN RGB888_TO_RGB565(165, 42, 42)
|
|
#define LCD_GRAY LCD_gray
|
|
|
|
void LCD_LED_SET(void);
|
|
void LCD_CS_SET(void);
|
|
void LCD_DC_SET(void);
|
|
void LCD_RST_SET(void);
|
|
|
|
void LCD_LED_CLR(void);
|
|
void LCD_CS_CLR(void);
|
|
void LCD_DC_CLR(void);
|
|
void LCD_RST_CLR(void);
|
|
|
|
void SPI1_wait_for_bsy();
|
|
void SPI2_wait_for_bsy();
|
|
void SPI2_wait_for_txe();
|
|
void SPI1_wait_for_DMA();
|
|
void SPI2_wait_for_DMA();
|
|
|
|
void LCD_Init(void);
|
|
void LCD_Clear(uint16_t Color);
|
|
|
|
void Lcd_WriteData_16Bit(uint16_t Data);
|
|
void LCD_SetWindows(uint16_t xStar, uint16_t yStar, uint16_t xEnd, uint16_t yEnd);
|
|
void LCD_Fill(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t Color);
|
|
|
|
#endif
|