99 lines
3.2 KiB
C
99 lines
3.2 KiB
C
#ifndef __LCD_H
|
|
#define __LCD_H
|
|
|
|
#include "stdlib.h"
|
|
#include "gd32vf103_gpio.h"
|
|
|
|
typedef enum {
|
|
LCD_DISPMODE_HORIZONTAL,
|
|
LCD_DISPMODE_HORIZONTAL_MIRROR,
|
|
LCD_DISPMODE_VERTICAL,
|
|
LCD_DISPMODE_VERTICAL_MIRROR
|
|
} lcd_display_mode_t;
|
|
|
|
#define USE_HARDWARE_SPI 1
|
|
//#define USE_HARDWARE_DMA_SPI 1
|
|
//#define USE_SOFTWARE_SPI 1
|
|
|
|
|
|
#if USE_HARDWARE_SPI
|
|
#define LCD_SCLK_Clr()
|
|
#define LCD_SCLK_Set()
|
|
#define LCD_SDIN_Clr()
|
|
#define LCD_SDIN_Set()
|
|
#define LCD_CS_Clr() gpio_bit_reset( GPIOB, GPIO_PIN_2) //CS PB2
|
|
#define LCD_CS_Set() gpio_bit_set( GPIOB, GPIO_PIN_2)
|
|
#endif
|
|
|
|
|
|
#if USE_HARDWARE_DMA_SPI
|
|
#define LCD_SCLK_Clr()
|
|
#define LCD_SCLK_Set()
|
|
#define LCD_SDIN_Clr()
|
|
#define LCD_SDIN_Set()
|
|
#define LCD_CS_Clr()
|
|
#define LCD_CS_Set()
|
|
#endif
|
|
|
|
|
|
#if USE_SOFTWARE_SPI
|
|
#define LCD_SCLK_Clr() gpio_bit_reset( GPIOA, GPIO_PIN_5) //CLK PA5
|
|
#define LCD_SCLK_Set() gpio_bit_set( GPIOA, GPIO_PIN_5)
|
|
#define LCD_SDIN_Clr() gpio_bit_reset( GPIOA, GPIO_PIN_7) //DIN PA7
|
|
#define LCD_SDIN_Set() gpio_bit_set( GPIOA, GPIO_PIN_7)
|
|
#define LCD_CS_Clr() gpio_bit_reset( GPIOB, GPIO_PIN_2) //CS PB2
|
|
#define LCD_CS_Set() gpio_bit_set( GPIOB, GPIO_PIN_2)
|
|
#endif
|
|
|
|
#define LCD_RST_Clr() gpio_bit_reset( GPIOB, GPIO_PIN_1) //RES PB1
|
|
#define LCD_RST_Set() gpio_bit_set( GPIOB, GPIO_PIN_1)
|
|
#define LCD_DC_Clr() gpio_bit_reset( GPIOB, GPIO_PIN_0) //DC PB0
|
|
#define LCD_DC_Set() gpio_bit_set( GPIOB, GPIO_PIN_0)
|
|
|
|
|
|
void LCD_Writ_Bus(uint8_t dat);
|
|
void LCD_WR_DATA8(uint8_t dat);
|
|
void LCD_WR_DATA(uint16_t dat);
|
|
void LCD_WR_REG(uint8_t dat);
|
|
|
|
void LCD_Init(void);
|
|
void LCD_Address_Set(uint16_t x1, uint16_t y1, uint16_t x2,uint16_t y2);
|
|
void LCD_SetDisplayMode(lcd_display_mode_t m);
|
|
|
|
void LCD_Clear(uint16_t Color);
|
|
void LCD_ClearRect(uint16_t Color, uint16_t x, uint16_t y, uint16_t width, uint16_t height);
|
|
void LCD_ShowChinese(uint16_t x,uint16_t y,uint8_t index,uint16_t color);
|
|
void LCD_ShowChineseWithFonts(uint16_t x,uint16_t y, const char fonts[][16], uint8_t index,uint16_t color);
|
|
void LCD_DrawPoint(uint16_t x,uint16_t y,uint16_t color);
|
|
void LCD_Fill(uint16_t xsta,uint16_t ysta,uint16_t xend,uint16_t yend,uint16_t color);
|
|
void LCD_DrawLine(int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color);
|
|
void LCD_DrawRectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2,uint16_t color);
|
|
void LCD_DrawCircle(uint16_t x0,uint16_t y0,uint8_t r,uint16_t color);
|
|
void LCD_ShowChar(uint16_t x,uint16_t y,uint8_t ch,uint16_t color);
|
|
void LCD_ShowString(uint16_t x,uint16_t y,const uint8_t *p,uint16_t color);
|
|
void LCD_ShowNum(uint16_t x,uint16_t y,uint16_t num,uint16_t color);
|
|
|
|
#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
|
|
#define DARKBLUE 0x01CF
|
|
#define LIGHTBLUE 0x7D7C
|
|
#define GRAYBLUE 0x5458
|
|
#define LIGHTGREEN 0x841F
|
|
#define LGRAY 0xC618
|
|
#define LGRAYBLUE 0xA651
|
|
#define LBBLUE 0x2B12
|
|
|
|
#endif
|