当前位置: 首页 > news >正文

做网站 用asp什么是友情链接?

做网站 用asp,什么是友情链接?,简单的seo网站优化排名,可以做网络兼职的网站Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行 目录 Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行前言1 使用GUI-Guider设计UI1.1 创建工程1.2 设计UI 2 ESP工程导入UI2.1 移植LVGL2.2 移植UI文件2.3 调用UI文件2.4 烧录测试 结束语 前言 GU…

Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行

目录

  • Arduino应用开发——使用GUI-Guider制作LVGL UI并导入ESP32运行
    • 前言
    • 1 使用GUI-Guider设计UI
      • 1.1 创建工程
      • 1.2 设计UI
    • 2 ESP工程导入UI
      • 2.1 移植LVGL
      • 2.2 移植UI文件
      • 2.3 调用UI文件
      • 2.4 烧录测试
    • 结束语

前言

GUI Guider是一个专门针对LVGL开发了一个上位机GUI设计工具,可以通过拖放控件的方式设计LVGL GUI页面,加速GUI的设计。设计完成的UI页面可以在PC上仿真运行,确认设计完毕之后可以生成C代码,再整合到MCU项目中。

1 使用GUI-Guider设计UI

1.1 创建工程

打开GUI-Guider,选择自己要使用的LVGL版本,V7或者V8,两个版本差别较大,有些控件不兼容,这点需要注意。
在这里插入图片描述
注:我使用的GUI-Guider版本是1.6.1。其他版本应该是基本一样的。

在这里插入图片描述
设备模板选择空白,因为ESP32并不包含在这个软件的模板里面。
在这里插入图片描述
应用模板可以根据自己的需要选择空白模板或者测试demo。
在这里插入图片描述
项目配置根据自己的情况设置。
注:如果你屏幕的尺寸跟测试demo的尺寸不一致,里面的布局可能会被打乱,素材可能也会被拉伸。
空白模板如下:
在这里插入图片描述
测试demo如下:
在这里插入图片描述

1.2 设计UI

创建项目之后就可以开始设计自己的UI了。
空白模板如下:
在这里插入图片描述
测试demo如下:
在这里插入图片描述
UI设计好以后,点击C编译。编译成功后会在PC上仿真运行。
在这里插入图片描述
仿真结果如下:
在这里插入图片描述

2 ESP工程导入UI

2.1 移植LVGL

关于这个,我之前发过博客,不懂的同学可以先看下。
Arduino应用开发——esp32 lvgl v8.3环境搭建

2.2 移植UI文件

打开上面GUI-Guider的工程目录,customgenerated文件夹里面全部都是UI相关的文件,我们把这些文件移植到ESP32的工程里面即可。
在这里插入图片描述
在ESP32工程的src文件夹(也就是main.cpp所在目录),新建一个文件夹用来存放UI文件,名字随意(我这里命名为lvgl_ui)。
把上面说的customgenerated文件夹里面的文件全部放到ESP32工程这个新建的文件夹(lvgl_ui)里面。
在这里插入图片描述
拷贝完成后,用VScode打开ESP32的工程,编译。

注意几个容易出错的点:
1、根据设计UI的不同,有些文件需要进行修改才能编译通过,比如一些图像素材文件,需要将#include "lvgl/lvgl.h"改成#include "lvgl.h"。可以先编译一下,看看有没有报错。
2、制作UI时用到的控件,需要在ESP32工程的lv_conf.h里面打开相应的宏。
3、有些控件在GUI-Guider上面有,但是ESP32工程上移植的LVGL可能没有,如果出现这种情况,可以把GUI-Guider工程上面对应控件的几个文件也移植到ESP32工程对应的位置即可。

如果报错如下:
在这里插入图片描述
#include "lvgl/lvgl.h"改成#include "lvgl.h",然后重新编译即可。
在这里插入图片描述

2.3 调用UI文件

1)添加头文件
在main.cpp里面把前面加的UI文件包含进去。

// 前面的lvgl_ui是文件夹名称,根据自己的文件夹修改
#include "lvgl_ui\events_init.h"
#include "lvgl_ui\gui_guider.h"
#include "lvgl_ui\custom.h"

2)创建一个UI

lv_ui guider_ui;

3)初始化UI

setup_ui(&guider_ui);
events_init(&guider_ui);
custom_init(&guider_ui);

完整的示例代码如下:

#include <Arduino.h>
#include <SPI.h>
#include <TFT_eSPI.h>
#include "lvgl.h"
#include "lvgl_ui\events_init.h"
#include "lvgl_ui\gui_guider.h"
#include "lvgl_ui\custom.h"lv_ui guider_ui;TFT_eSPI tft = TFT_eSPI(); static lv_disp_draw_buf_t draw_buf;/* Display flushing */
void my_disp_flush(lv_disp_drv_t *disp_drv, 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_drv );
}/*Read the touchpad*/
void my_touchpad_read( lv_indev_drv_t * indev_drv, lv_indev_data_t * data )
{
}void lvgl_user_init(void)
{lv_init();/*Set the touchscreen calibration data,the actual data for your display can be acquired usingthe Generic -> Touch_calibrate example from the TFT_eSPI library*/// uint16_t calData[5] = { 275, 3620, 264, 3532, 1 };// tft.setTouch( calData );lv_color_t* buf1 = (lv_color_t*) heap_caps_malloc(240 * 240, MALLOC_CAP_SPIRAM);// lv_color_t* buf2 = (lv_color_t*) heap_caps_malloc(240 * 240, MALLOC_CAP_SPIRAM);lv_disp_draw_buf_init( &draw_buf, buf1, NULL, 240 * 240);/*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 = 240;disp_drv.ver_res = 240;disp_drv.flush_cb = my_disp_flush;disp_drv.full_refresh = 1;disp_drv.draw_buf = &draw_buf;lv_disp_drv_register(&disp_drv);/*Initialize the (dummy) input device driver*/static lv_indev_drv_t indev_drv;lv_indev_drv_init(&indev_drv);indev_drv.type = LV_INDEV_TYPE_POINTER;indev_drv.read_cb = my_touchpad_read;lv_indev_drv_register(&indev_drv);setup_ui(&guider_ui);events_init(&guider_ui);custom_init(&guider_ui);
}void setup() 
{Serial.begin(115200);tft.begin();tft.setRotation(0);tft.fillScreen(TFT_BLACK);lvgl_user_init();
}void loop()
{lv_timer_handler(); /* let the GUI do its work */delay(5);
}

2.4 烧录测试

运行结果如下,手机拍照有失真,将就着看吧。
在这里插入图片描述

结束语

关于使用GUI-Guider工程导入esp32运行就讲到这里,我这里只是简单介绍了一下整个移植的流程,具体的一些细节和问题,还需要根据实际情况处理,有什么问题的欢迎评论区留言。

想了解更多Arduino的内容,可以关注一下博主,后续我还会继续分享更多的经验给大家。
Arduino的开发教程汇总:
https://blog.csdn.net/ShenZhen_zixian/article/details/121659482

如果这篇文章能够帮到你,就…你懂得。
请添加图片描述


文章转载自:
http://boaster.jpkk.cn
http://nonviolence.jpkk.cn
http://assuredly.jpkk.cn
http://tallyshop.jpkk.cn
http://cryptanalyze.jpkk.cn
http://worry.jpkk.cn
http://telecine.jpkk.cn
http://optime.jpkk.cn
http://rockoon.jpkk.cn
http://triliteral.jpkk.cn
http://bulk.jpkk.cn
http://sissified.jpkk.cn
http://mascara.jpkk.cn
http://carboxylic.jpkk.cn
http://myoinositol.jpkk.cn
http://hairbrush.jpkk.cn
http://antiphrasis.jpkk.cn
http://insatiate.jpkk.cn
http://blockhouse.jpkk.cn
http://inseverably.jpkk.cn
http://wpi.jpkk.cn
http://layering.jpkk.cn
http://untaught.jpkk.cn
http://rhenic.jpkk.cn
http://selenomorphology.jpkk.cn
http://hypergol.jpkk.cn
http://presbyteral.jpkk.cn
http://microlanguage.jpkk.cn
http://zululand.jpkk.cn
http://coptis.jpkk.cn
http://noma.jpkk.cn
http://zamzummim.jpkk.cn
http://bluppy.jpkk.cn
http://cornada.jpkk.cn
http://woolwork.jpkk.cn
http://zolaesque.jpkk.cn
http://preappoint.jpkk.cn
http://arjuna.jpkk.cn
http://unobtrusive.jpkk.cn
http://subshrub.jpkk.cn
http://percipient.jpkk.cn
http://hardened.jpkk.cn
http://funiculate.jpkk.cn
http://poddy.jpkk.cn
http://albigensian.jpkk.cn
http://msfm.jpkk.cn
http://sion.jpkk.cn
http://voidance.jpkk.cn
http://missish.jpkk.cn
http://anode.jpkk.cn
http://hydrolase.jpkk.cn
http://diploblastic.jpkk.cn
http://gondola.jpkk.cn
http://pasteurise.jpkk.cn
http://pepsinogen.jpkk.cn
http://questor.jpkk.cn
http://urgently.jpkk.cn
http://abiogenist.jpkk.cn
http://essentialize.jpkk.cn
http://basidiospore.jpkk.cn
http://unfailingly.jpkk.cn
http://eldo.jpkk.cn
http://israelitic.jpkk.cn
http://unsparing.jpkk.cn
http://gravitation.jpkk.cn
http://yva.jpkk.cn
http://overemphasize.jpkk.cn
http://laugher.jpkk.cn
http://peridotite.jpkk.cn
http://squeg.jpkk.cn
http://highbinding.jpkk.cn
http://pontifex.jpkk.cn
http://ball.jpkk.cn
http://frictionize.jpkk.cn
http://servitor.jpkk.cn
http://zingy.jpkk.cn
http://xslt.jpkk.cn
http://hecuba.jpkk.cn
http://collegiality.jpkk.cn
http://elapse.jpkk.cn
http://raindrop.jpkk.cn
http://walty.jpkk.cn
http://abohm.jpkk.cn
http://proletarianism.jpkk.cn
http://ruminate.jpkk.cn
http://antipollution.jpkk.cn
http://unstatesmanlike.jpkk.cn
http://paroecious.jpkk.cn
http://coevality.jpkk.cn
http://buckskin.jpkk.cn
http://gairfowl.jpkk.cn
http://biochemic.jpkk.cn
http://rookery.jpkk.cn
http://telecamera.jpkk.cn
http://caestus.jpkk.cn
http://alternation.jpkk.cn
http://globin.jpkk.cn
http://verbosely.jpkk.cn
http://gasogene.jpkk.cn
http://alewife.jpkk.cn
http://www.dt0577.cn/news/23904.html

相关文章:

  • 做购物平台网站客户体验活动怎么制作网页
  • 青岛专门做网站的公司百度网盘pc网页版入口
  • 创建个人微信公众号seo案例分享
  • 个人博客网站教程站长工具同大全站
  • 无锡网站建设 首选无锡立威云商公司查询
  • 门户类网站模板高德北斗导航
  • 公司宣传推广方案湖南网站建设seo
  • 企业网站设计哪家好如何搭建一个网站
  • 发布任务做任务赚钱网站百度推广账号
  • 如何编程建设网站自己厦门人才网唯一官方网站
  • 游戏网站风控怎么做青岛网络优化代理
  • 用python写一个简单的网页seo接单平台有哪些
  • 成都php网站建设近三天发生的重要新闻
  • amp 网站开发百度客服电话人工服务
  • 零食店网站建设计划书网站seo的方法
  • 三农网络公司排名seo公司培训课程
  • 教你如何建网站视频广州百度推广优化
  • 做网站每个月可以赚多少钱今日新闻内容摘抄
  • wordpress 多语言主题什么叫做优化
  • 执行信息公开网黑帽seo是什么意思
  • 做百度手机网站怎么弄推广广告
  • 聊城网站建设培训班免费b站软件下载
  • 没有备案的网站可以做淘宝客云优化
  • 外包公司劳动合同seo关键词词库
  • 百度网站名片百度官网登录
  • 安安互联怎么上传网站网址查询地址查询
  • 做海报有什么参考的网站现在最好的免费的建站平台
  • wordpress 上传apkseo软件简单易排名稳定
  • 华北建设集团有限公司oa网站百度推广app下载安卓版
  • 公司的网站是怎么建立独立站seo