提交 36410970 编写于 作者: mysterywolf's avatar mysterywolf

[stm32l475] update lcd driver

上级 5f2f862e
...@@ -2,14 +2,14 @@ from building import * ...@@ -2,14 +2,14 @@ from building import *
import os import os
cwd = GetCurrentDir() cwd = GetCurrentDir()
src = Glob('*.c') src = ['drv_lcd.c']
CPPPATH = [cwd] CPPPATH = [cwd]
if GetDepend(['BSP_USING_LCD_QRCODE']): if GetDepend(['BSP_USING_LCD_QRCODE']):
src = src + Glob('lcd_qrcode.c') src = src + ['lcd_qrcode.c']
if GetDepend(['BSP_USING_LCD_SAMPLE']): if GetDepend(['BSP_USING_LCD_SAMPLE']):
src = src + Glob('demo/lcd_sample.c') src = src + ['demo/lcd_sample.c']
group = DefineGroup('Drivers', src, depend = ['BSP_USING_SPI_LCD'], CPPPATH = CPPPATH) group = DefineGroup('Drivers', src, depend = ['BSP_USING_SPI_LCD'], CPPPATH = CPPPATH)
......
...@@ -16,7 +16,9 @@ ...@@ -16,7 +16,9 @@
#include <drv_gpio.h> #include <drv_gpio.h>
#include <drv_spi.h> #include <drv_spi.h>
#include "drv_lcd.h" #include "drv_lcd.h"
#ifndef BSP_USING_LVGL
#include "drv_lcd_font.h" #include "drv_lcd_font.h"
#endif /* BSP_USING_LVGL */
#define DBG_TAG "drv.lcd" #define DBG_TAG "drv.lcd"
#define DBG_LVL DBG_INFO #define DBG_LVL DBG_INFO
...@@ -25,9 +27,11 @@ ...@@ -25,9 +27,11 @@
#define LCD_PWR_PIN GET_PIN(B, 7) #define LCD_PWR_PIN GET_PIN(B, 7)
#define LCD_DC_PIN GET_PIN(B, 4) #define LCD_DC_PIN GET_PIN(B, 4)
#define LCD_RES_PIN GET_PIN(B, 6) #define LCD_RES_PIN GET_PIN(B, 6)
#define LCD_CLEAR_SEND_NUMBER 5760 /* 240*240/10 */
#ifndef BSP_USING_LVGL
#define LCD_CLEAR_SEND_NUMBER 5760 /* 240*240/10 */
rt_uint16_t BACK_COLOR = WHITE, FORE_COLOR = BLACK; rt_uint16_t BACK_COLOR = WHITE, FORE_COLOR = BLACK;
#endif /* BSP_USING_LVGL */
static struct rt_spi_device *spi_dev_lcd; static struct rt_spi_device *spi_dev_lcd;
...@@ -86,6 +90,7 @@ static rt_err_t lcd_write_data(const rt_uint8_t data) ...@@ -86,6 +90,7 @@ static rt_err_t lcd_write_data(const rt_uint8_t data)
} }
} }
#ifndef BSP_USING_LVGL
static rt_err_t lcd_write_half_word(const rt_uint16_t da) static rt_err_t lcd_write_half_word(const rt_uint16_t da)
{ {
rt_size_t len; rt_size_t len;
...@@ -106,6 +111,7 @@ static rt_err_t lcd_write_half_word(const rt_uint16_t da) ...@@ -106,6 +111,7 @@ static rt_err_t lcd_write_half_word(const rt_uint16_t da)
return RT_EOK; return RT_EOK;
} }
} }
#endif /* BSP_USING_LVGL */
static void lcd_gpio_init(void) static void lcd_gpio_init(void)
{ {
...@@ -214,6 +220,7 @@ static int rt_hw_lcd_init(void) ...@@ -214,6 +220,7 @@ static int rt_hw_lcd_init(void)
} }
INIT_DEVICE_EXPORT(rt_hw_lcd_init); INIT_DEVICE_EXPORT(rt_hw_lcd_init);
#ifndef BSP_USING_LVGL
/** /**
* Set background color and foreground color * Set background color and foreground color
* *
...@@ -227,6 +234,7 @@ void lcd_set_color(rt_uint16_t back, rt_uint16_t fore) ...@@ -227,6 +234,7 @@ void lcd_set_color(rt_uint16_t back, rt_uint16_t fore)
BACK_COLOR = back; BACK_COLOR = back;
FORE_COLOR = fore; FORE_COLOR = fore;
} }
#endif /* BSP_USING_LVGL */
void lcd_display_on(void) void lcd_display_on(void)
{ {
...@@ -281,6 +289,7 @@ void lcd_address_set(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t ...@@ -281,6 +289,7 @@ void lcd_address_set(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t
lcd_write_cmd(0x2C); lcd_write_cmd(0x2C);
} }
#ifndef BSP_USING_LVGL
/** /**
* clear the lcd. * clear the lcd.
* *
...@@ -424,6 +433,8 @@ void lcd_fill(rt_uint16_t x_start, rt_uint16_t y_start, rt_uint16_t x_end, rt_ui ...@@ -424,6 +433,8 @@ void lcd_fill(rt_uint16_t x_start, rt_uint16_t y_start, rt_uint16_t x_end, rt_ui
} }
} }
} }
#endif /* BSP_USING_LVGL */
/** /**
* full color array on the lcd. * full color array on the lcd.
...@@ -446,6 +457,7 @@ void lcd_fill_array(rt_uint16_t x_start, rt_uint16_t y_start, rt_uint16_t x_end, ...@@ -446,6 +457,7 @@ void lcd_fill_array(rt_uint16_t x_start, rt_uint16_t y_start, rt_uint16_t x_end,
rt_spi_send(spi_dev_lcd, pcolor, size); rt_spi_send(spi_dev_lcd, pcolor, size);
} }
#ifndef BSP_USING_LVGL
/** /**
* display a line on the lcd. * display a line on the lcd.
* *
...@@ -856,3 +868,5 @@ rt_err_t lcd_show_image(rt_uint16_t x, rt_uint16_t y, rt_uint16_t length, rt_uin ...@@ -856,3 +868,5 @@ rt_err_t lcd_show_image(rt_uint16_t x, rt_uint16_t y, rt_uint16_t length, rt_uin
return RT_EOK; return RT_EOK;
} }
#endif /* BSP_USING_LVGL */
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
* *
* Change Logs: * Change Logs:
* Date Author Notes * Date Author Notes
* 2018-08-14 flybreak the first version * 2018-08-14 flybreak the first version
* 2018-09-18 balanceTWK add sleep mode function * 2018-09-18 balanceTWK add sleep mode function
*/ */
#ifndef __DRV_LCD_H__ #ifndef __DRV_LCD_H__
...@@ -14,14 +14,10 @@ ...@@ -14,14 +14,10 @@
#include <rtthread.h> #include <rtthread.h>
#ifdef PKG_USING_QRCODE
#include <qrcode.h>
#endif
#define LCD_W 240 #define LCD_W 240
#define LCD_H 240 #define LCD_H 240
//POINT_COLOR #ifndef BSP_USING_LVGL
#define WHITE 0xFFFF #define WHITE 0xFFFF
#define BLACK 0x0000 #define BLACK 0x0000
#define BLUE 0x001F #define BLUE 0x001F
...@@ -42,25 +38,25 @@ ...@@ -42,25 +38,25 @@
#define GRAY240 0XF79E #define GRAY240 0XF79E
extern rt_uint16_t BACK_COLOR, FORE_COLOR; extern rt_uint16_t BACK_COLOR, FORE_COLOR;
void lcd_clear(rt_uint16_t color); void lcd_clear(rt_uint16_t color);
void lcd_address_set(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t y2);
void lcd_set_color(rt_uint16_t back, rt_uint16_t fore); void lcd_set_color(rt_uint16_t back, rt_uint16_t fore);
void lcd_draw_point(rt_uint16_t x, rt_uint16_t y); void lcd_draw_point(rt_uint16_t x, rt_uint16_t y);
void lcd_draw_point_color(rt_uint16_t x, rt_uint16_t y, rt_uint16_t color); void lcd_draw_point_color(rt_uint16_t x, rt_uint16_t y, rt_uint16_t color);
void lcd_draw_circle(rt_uint16_t x0, rt_uint16_t y0, rt_uint8_t r); void lcd_draw_circle(rt_uint16_t x0, rt_uint16_t y0, rt_uint8_t r);
void lcd_draw_line(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t y2); void lcd_draw_line(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t y2);
void lcd_draw_rectangle(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t y2); void lcd_draw_rectangle(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t y2);
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); 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);
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);
void lcd_show_num(rt_uint16_t x, rt_uint16_t y, rt_uint32_t num, rt_uint8_t len, rt_uint32_t size); void lcd_show_num(rt_uint16_t x, rt_uint16_t y, rt_uint32_t num, rt_uint8_t len, rt_uint32_t size);
rt_err_t lcd_show_string(rt_uint16_t x, rt_uint16_t y, rt_uint32_t size, const char *fmt, ...); rt_err_t lcd_show_string(rt_uint16_t x, rt_uint16_t y, rt_uint32_t size, const char *fmt, ...);
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); 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);
#endif /* BSP_USING_LVGL */
void lcd_enter_sleep(void); void lcd_enter_sleep(void);
void lcd_exit_sleep(void); void lcd_exit_sleep(void);
void lcd_display_on(void); void lcd_display_on(void);
void lcd_display_off(void); void lcd_display_off(void);
void lcd_address_set(rt_uint16_t x1, rt_uint16_t y1, rt_uint16_t x2, rt_uint16_t y2);
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);
#endif #endif
...@@ -186,4 +186,4 @@ __exit: ...@@ -186,4 +186,4 @@ __exit:
return result; return result;
} }
#endif #endif /* BSP_USING_LCD_QRCODE */
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include <rtconfig.h> #include <rtconfig.h>
#ifdef PKG_USING_QRCODE #ifdef BSP_USING_LCD_QRCODE
#include <rtdef.h> #include <rtdef.h>
rt_err_t lcd_show_qrcode(rt_uint16_t x, rt_uint16_t y, rt_uint8_t version, rt_uint8_t ecc, const char *data, rt_uint8_t enlargement); rt_err_t lcd_show_qrcode(rt_uint16_t x, rt_uint16_t y, rt_uint8_t version, rt_uint8_t ecc, const char *data, rt_uint8_t enlargement);
#endif #endif
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册