123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- /*!
- \file gd32f303e_lcd_eval.h
- \brief LCD driver header file
- */
- /*
- Copyright (C) 2017 GigaDevice
- 2017-05-19, V1.0.0, demo for GD32F30x
- */
- #ifndef GD32F303E_LCD_EVAL_H
- #define GD32F303E_LCD_EVAL_H
- #include "gd32f30x.h"
- #define BANK0_LCD_D ((uint32_t)0x65000000) /*!< LCD data address */
- #define BANK0_LCD_C ((uint32_t)0x64000000) /*!< LCD register address */
- /* LCD registers */
- #define R0 0x00
- #define R1 0x01
- #define R2 0x02
- #define R3 0x03
- #define R4 0x04
- #define R5 0x05
- #define R6 0x06
- #define R7 0x07
- #define R8 0x08
- #define R9 0x09
- #define R10 0x0A
- #define R11 0x0B
- #define R12 0x0C
- #define R13 0x0D
- #define R14 0x0E
- #define R15 0x0F
- #define R16 0x10
- #define R17 0x11
- #define R18 0x12
- #define R19 0x13
- #define R20 0x14
- #define R21 0x15
- #define R22 0x16
- #define R23 0x17
- #define R24 0x18
- #define R25 0x19
- #define R26 0x1A
- #define R27 0x1B
- #define R28 0x1C
- #define R29 0x1D
- #define R30 0x1E
- #define R31 0x1F
- #define R32 0x20
- #define R33 0x21
- #define R34 0x22
- #define R35 0x23
- #define R36 0x24
- #define R37 0x25
- #define R40 0x28
- #define R41 0x29
- #define R43 0x2B
- #define R45 0x2D
- #define R48 0x30
- #define R49 0x31
- #define R50 0x32
- #define R51 0x33
- #define R52 0x34
- #define R53 0x35
- #define R54 0x36
- #define R55 0x37
- #define R56 0x38
- #define R57 0x39
- #define R58 0x3A
- #define R59 0x3B
- #define R60 0x3C
- #define R61 0x3D
- #define R62 0x3E
- #define R63 0x3F
- #define R64 0x40
- #define R65 0x41
- #define R66 0x42
- #define R67 0x43
- #define R68 0x44
- #define R69 0x45
- #define R70 0x46
- #define R71 0x47
- #define R72 0x48
- #define R73 0x49
- #define R74 0x4A
- #define R75 0x4B
- #define R76 0x4C
- #define R77 0x4D
- #define R78 0x4E
- #define R79 0x4F
- #define R80 0x50
- #define R81 0x51
- #define R82 0x52
- #define R83 0x53
- #define R96 0x60
- #define R97 0x61
- #define R106 0x6A
- #define R118 0x76
- #define R128 0x80
- #define R129 0x81
- #define R130 0x82
- #define R131 0x83
- #define R132 0x84
- #define R133 0x85
- #define R134 0x86
- #define R135 0x87
- #define R136 0x88
- #define R137 0x89
- #define R139 0x8B
- #define R140 0x8C
- #define R141 0x8D
- #define R143 0x8F
- #define R144 0x90
- #define R145 0x91
- #define R146 0x92
- #define R147 0x93
- #define R148 0x94
- #define R149 0x95
- #define R150 0x96
- #define R151 0x97
- #define R152 0x98
- #define R153 0x99
- #define R154 0x9A
- #define R157 0x9D
- #define R192 0xC0
- #define R193 0xC1
- #define R229 0xE5
- /* LCD color */
- #define WHITE 0xFFFF
- #define BLACK 0x0000
- #define GREY 0xF7DE
- #define BLUE 0x001F
- #define BLUE2 0x051F
- #define RED 0xF800
- #define MAGENTA 0xF81F
- #define GREEN 0x07E0
- #define CYAN 0x7FFF
- #define YELLOW 0xFFE0
- #define LINE0 0
- #define LINE1 24
- #define LINE2 48
- #define LINE3 72
- #define LINE4 96
- #define LINE5 120
- #define LINE6 144
- #define LINE7 168
- #define LINE8 192
- #define LINE9 216
- /* char format struct definitions */
- typedef struct
- {
- uint16_t font; /*!< the type of font */
- uint16_t direction; /*!< the direction of char */
- uint16_t char_color; /*!< the color of char */
- uint16_t bk_color; /*!< the color of backgroud */
- }char_format_struct;
- #define CHAR_FONT_8_16 ((uint16_t)0x0000U) /*!< the font of char is 8X16 */
- #define CHAR_FONT_16_24 ((uint16_t)0x0001U) /*!< the font of char is 16X24 */
- #define CHAR_DIRECTION_HORIZONTAL ((uint16_t)0x0000U) /*!< character display direction is horizontal */
- #define CHAR_DIRECTION_VERTICAL ((uint16_t)0x0001U) /*!< character display direction is vertical */
- /* lcd peripheral initialize */
- void exmc_lcd_init(void);
- /* initize the LCD */
- void lcd_init(void);
- /* write data to the selected LCD register */
- void lcd_register_write(uint16_t register_id,uint16_t value);
- /* read the value of LCD register */
- uint16_t lcd_register_read(uint8_t register_id);
- /* write command to LCD register */
- void lcd_command_write (uint16_t value);
- /* prepare to write to the LCD GRAM */
- void lcd_gram_write_prepare(void);
- /* write RGB code to the LCD GRAM register */
- void lcd_gram_write(uint16_t rgb_code);
- /* read data from GRAM */
- uint16_t lcd_gram_read(void);
- /* set the curson of LCD */
- void lcd_cursor_set(uint16_t x,uint16_t y);
- /* clear the LCD screen to the specified color */
- void lcd_clear(uint16_t Color);
- /* set the point according to the specified position and color */
- void lcd_point_set(uint16_t x,uint16_t y,uint16_t point);
- /* get the point according to the specified position */
- uint16_t lcd_point_get(uint16_t x,uint16_t y);
- /* set window area */
- void lcd_windows_set(uint16_t start_x,uint16_t start_y,uint16_t end_x,uint16_t end_y);
- /* draw a horizontal line on LCD screen */
- void lcd_hline_draw(uint16_t x,uint16_t start_y,uint16_t end_y,uint16_t color,uint16_t width);
- /* draw a rectangle according to the specified position and color */
- void lcd_rectangle_draw(uint16_t start_x,uint16_t start_y,uint16_t end_x,uint16_t end_y,uint16_t point);
- /* fill the specified color to a rectangle */
- void lcd_rectangle_fill(uint16_t start_x,uint16_t start_y,uint16_t end_x,uint16_t end_y,uint16_t color);
- /* draw a picture on LCD screen according to the specified position */
- void lcd_picture_draw(uint16_t start_x,uint16_t start_y,uint16_t end_x,uint16_t end_y,uint16_t *pic);
- /* display a char on LCD screen according to the specified position */
- void lcd_char_display(uint16_t x,uint16_t y,uint8_t c,char_format_struct c_format);
- #endif /* GD32F303E_LCD_EVAL_H */
|