1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author            Notes
8  * 2018-08-14     flybreak          the first version
9  * 2018-09-18     balanceTWK        add sleep mode function
10  */
11 
12 #ifndef __DRV_LCD_H__
13 #define __DRV_LCD_H__
14 
15 #include <rtthread.h>
16 
17 #define LCD_W 240
18 #define LCD_H 240
19 
20 #ifndef BSP_USING_LVGL
21 #define WHITE            0xFFFF
22 #define BLACK            0x0000
23 #define BLUE             0x001F
24 #define BRED             0XF81F
25 #define GRED             0XFFE0
26 #define GBLUE            0X07FF
27 #define RED              0xF800
28 #define MAGENTA          0xF81F
29 #define GREEN            0x07E0
30 #define CYAN             0x7FFF
31 #define YELLOW           0xFFE0
32 #define BROWN            0XBC40
33 #define BRRED            0XFC07
34 #define GRAY             0X8430
35 #define GRAY175          0XAD75
36 #define GRAY151          0X94B2
37 #define GRAY187          0XBDD7
38 #define GRAY240          0XF79E
39 
40 extern rt_uint16_t BACK_COLOR, FORE_COLOR;
41 void lcd_clear(rt_uint16_t color);
42 void lcd_set_color(rt_uint16_t back, rt_uint16_t fore);
43 void lcd_draw_point(rt_uint16_t x, rt_uint16_t y);
44 void lcd_draw_point_color(rt_uint16_t x, rt_uint16_t y, rt_uint16_t color);
45 void lcd_draw_circle(rt_uint16_t x0, rt_uint16_t y0, rt_uint8_t r);
46 void lcd_draw_line(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t y2);
47 void lcd_draw_rectangle(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t y2);
48 void lcd_fill(rt_uint16_t x_start, rt_uint16_t y_start, rt_uint16_t x_end, rt_uint16_t y_end, rt_uint16_t color);
49 void lcd_show_num(rt_uint16_t x, rt_uint16_t y, rt_uint32_t num, rt_uint8_t len, rt_uint32_t size);
50 rt_err_t lcd_show_string(rt_uint16_t x, rt_uint16_t y, rt_uint32_t size, const char *fmt, ...);
51 rt_err_t lcd_show_image(rt_uint16_t x, rt_uint16_t y, rt_uint16_t length, rt_uint16_t wide, const rt_uint8_t *p);
52 #endif /* BSP_USING_LVGL */
53 
54 void lcd_enter_sleep(void);
55 void lcd_exit_sleep(void);
56 void lcd_display_on(void);
57 void lcd_display_off(void);
58 void lcd_display_brightness(rt_uint8_t percent);
59 
60 void lcd_address_set(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t y2);
61 void lcd_fill_array(rt_uint16_t x_start, rt_uint16_t y_start, rt_uint16_t x_end, rt_uint16_t y_end, void *pcolor);
62 
63 #endif
64