ESP32-DEVKIT-V1上手
1.创建platform工程
New Project -> Borad选DOIT esp32devkitv1 -> arduino framework
在platformio.ini中加入monitor_speed = 115200
2.添加库
Libraries -> TFT_eSPI
进入User_Setup.h
Section 1. Call up the right driver file and any options for it
Libraries -> lvgl
3.测试程序
屏幕驱动
#include <lvgl.h>
#include <TFT_eSPI.h>
#include <WiFi.h>
static lv_disp_draw_buf_t draw_buf; //定义显示器变量
static lv_color_t buf[TFT_WIDTH * 10]; //定义刷新缓存
TFT_eSPI tft = TFT_eSPI();
const char *ssid = "HUAWEI-7A0A1D";
const char *pwd = "l12345678";
/* Display flushing */
void my_disp_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p)
{
uint32_t w = (area->x2 - area->x1 + 1);
uint32_t h = (area->y2 - area->y1 + 1);
tft.startWrite(); //使能写功能
tft.setAddrWindow(area->x1, area->y1, w, h); //设置填充区域
tft.pushColors((uint16_t *)&color_p->full, w * h, true); //写入颜色缓存和缓存大小
tft.endWrite(); //关闭写功能
lv_disp_flush_ready(disp); //调用区域填充颜色函数
}
void setup()
{
pinMode(2,OUTPUT);
Serial.begin(115200);
//connect to WiFi
Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, pwd);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("Connected!");
// local ip
Serial.println(WiFi.localIP().toString());
// WiFi disconnect
WiFi.disconnect();
Serial.println("WiFi Disconnected!");
// WiFi Close
WiFi.mode(WIFI_OFF);
Serial.println("WiFi is off!");
//tft初始化
tft.init(); //初始化
tft.setRotation(3);
lv_init();
lv_disp_draw_buf_init(&draw_buf, buf, NULL, TFT_WIDTH * 10);
/*Initialize the display*/
static lv_disp_drv_t disp_drv;
lv_disp_drv_init(&disp_drv);
/*Change the following line to your display resolution*/
disp_drv.hor_res = TFT_WIDTH;
disp_drv.ver_res = TFT_HEIGHT;
disp_drv.flush_cb = my_disp_flush;
disp_drv.draw_buf = &draw_buf;
lv_disp_drv_register(&disp_drv);
lv_obj_t *label = lv_label_create(lv_scr_act());
lv_label_set_text(label, "Hello world!");
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
}
void loop()
{
lv_timer_handler(); /* let the GUI do its work */
delay(5);
digitalWrite(2,HIGH);
delay(500);
digitalWrite(2,LOW);
delay(500);
}
评论