lcd display hello world

  1. 示例代码

在arduino IDE中,点击「File」→「Examples」→「TFT_displayer」→「gfx_helloworld」打开示例。

示例-gfx_helloworld.ino
 1#include <Arduino.h>
 2#include "TFT_display.h"
 3
 4image_fb_t fb;
 5
 6void setup() {
 7  fb.buf = (uint8_t *)heap_caps_calloc(1, (320 * 172) * sizeof(uint16_t), MALLOC_CAP_8BIT | MALLOC_CAP_SPIRAM);
 8  fb.width = 320;
 9  fb.height = 172;
10  fb.format = PIXFORMAT_RGB565;
11  fb.len = (320 * 172) * sizeof(uint16_t);
12
13  fb_gfx_fillRect(&fb, 10, 10, 300, 160, GUI_Green);
14  fb_gfx_print(&fb, 20, 20, GUI_Red, "hello, world.");
15  fb_gfx_drawFastHLine(&fb, 11, 111, 100, GUI_Blue);
16  
17
18  lcd_init();
19  // lcd_draw_logo();
20  lcd_show(fb.buf);
21}
22
23void loop() {
24  // put your main code here, to run repeatedly:
25}

  1. 运行效果

代码上传后,屏幕显示”hello,world.”。

lvgl label

  1. 示例代码

在arduino IDE中,点击「File」→「Examples」→「TFT_displayer」→「lvgl_label」打开示例。

示例-lvgl_label.ino
 1/* 创建一个简单的 label示例
 2    * lvgl官方示例:
 3    *  - 在线文档: https://docs.lvgl.io/master/examples.html
 4    *  - 源码: https://github.com/lvgl/lvgl/tree/master/examples
 5*/
 6
 7#include <TFT_display.h>
 8
 9void setup()
10{
11    Serial.begin( 115200 );
12    String LVGL_Arduino = "Hello Arduino! ";
13    LVGL_Arduino += String('V') + lv_version_major() + "." + lv_version_minor() + "." + lv_version_patch();
14    Serial.println( LVGL_Arduino );
15
16    TFT_display_init();
17
18    lv_obj_t *label = lv_label_create( lv_screen_active() );
19    lv_label_set_text( label, "Hello Arduino, I'm LVGL!" );
20    lv_obj_align( label, LV_ALIGN_CENTER, 0, 0 );
21}
22
23void loop()
24{
25    lv_timer_handler(); /* let the GUI do its work */
26    delay(5); /* let this time pass */
27}

  1. 运行效果

代码上传后,屏幕显示”Hello Arduino, I’m LVGL!”。

lvgl slider

1. 示例代码 在arduino IDE中,点击「File」→「Examples」→「TFT_displayer」→「lvgl_slider」打开示例。

示例-lvgl_slider.ino
 1/* 创建一个简单的 slider示例
 2    * lvgl官方示例:
 3    *  - 在线文档: https://docs.lvgl.io/master/examples.html
 4    *  - 源码: https://github.com/lvgl/lvgl/tree/master/examples
 5*/
 6
 7#include <TFT_display.h>
 8
 9static lv_obj_t * label;
10lv_obj_t * slider;
11static int32_t slider_value = 30;
12
13static void slider_event_cb(lv_event_t * e)
14{
15    lv_obj_t * slider = lv_event_get_target_obj(e);
16     Serial.println("hello");
17    // lv_slider_set_value(slider, slider_value, LV_ANIM_OFF);
18    // /*刷新slider进度文本值*/
19    // lv_label_set_text_fmt(label, "%" LV_PRId32, lv_slider_get_value(slider));
20    // lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -10);    /*slider 进度文本值始终在slider上部中间*/
21}
22
23void setup()
24{
25    Serial.begin(115200);
26    TFT_display_init();
27
28    /*屏幕上创建一个slider控件*/
29    lv_obj_t * slider = lv_slider_create(lv_screen_active());
30    lv_obj_set_width(slider, 200);                          /*设置宽度*/
31    lv_obj_center(slider);                                  /*置于屏幕中间*/
32    lv_slider_set_value(slider, slider_value, LV_ANIM_OFF); // 设置滑块初始值
33    lv_obj_add_event_cb(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL);     /*设置slider值改变时回调函数*/
34
35    /*在slider上面创建一个显示进度的文本*/
36    label = lv_label_create(lv_screen_active());
37    lv_label_set_text(label, "30");
38    lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -10);    /*文本居slider上部中间*/
39
40    lv_obj_send_event(slider, LV_EVENT_VALUE_CHANGED, NULL);
41
42}
43
44void loop()
45{
46    lv_timer_handler(); /* let the GUI do its work */
47    delay(10); /* let this time pass */
48}

  1. 运行效果

代码上传后,屏幕显示”Hello Arduino, I’m LVGL!”。