IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> windows10下模拟器运行LVGL记录 -> 正文阅读

[开发工具]windows10下模拟器运行LVGL记录

LVGL支持在各种设备上运行,因为我手头没有啥设备(其实是不会),不过它也支持在windows下使用模拟器运行。以下就是在windows下搭建一个模拟器并创建运行一个简单demo的记录。

一、环境搭建

1、前置条件:

  • 安装visual studio 2019(其他版本没试);
  • 安装git。

2、安装PC上的模拟器
这里需要下载一个VisualStudio with SDL driver。
官方介绍两种方式下载 :
第一种,直接clone仓库。但是这种方式我在公司网没试成功:

git clone --recurse-submodules https://github.com/lvgl/lv_sim_visual_studio.git

第二种:这个可以。

git clone https://github.com/lvgl/lv_sim_visual_studio.git 
cd lv_sim_visual_studio 
git submodule update --init --recursive

注意:这里不要直接在github下用浏览器下载zip包,下下来的东西不是完整的。

二、启动DEMO

1、进入到下载好的demo文件目录
在这里插入图片描述

2、双击打开LVGL.Simulator.sln文件,这个时候会通过visual studio打开项目。
在这里插入图片描述

3、修改一下visual studio菜单栏上的调试器,我的电脑是win10 64位的,我选择了x64
在这里插入图片描述

4、点击 调试—开始执行(……)
在这里插入图片描述

运行成功后,会打开如下界面:
在这里插入图片描述

三、开发

1、项目结构
先看下下载下来的源码包结构:
在这里插入图片描述

2、创建新项目
在lv_demo文件夹下创建一个名为test的文件夹,在test文件夹下创建一个一个lv_demo_test.c文件和一个lv_demo_test.h文件。当然,这里的文件名大家可以随意改。
在这里插入图片描述

3、编写头文件
lv_demo_test.h输入以下内容

#ifdef __cplusplus
extern "C" {
#endif
#include "../../lv_demo.h"
void lv_demo_test(void);
#ifdef __cplusplus
} /* extern "C" */
#endif

这里主要是引入了lv_demo.h这个头文件,以及定义了一个名为lv_demo_test的函数,这个函数后面将会放在入口类中调用。

4、编写C文件
lv_demo_test.c文件输入以下内容

#include "../../lv_demo.h"
lv_obj_t* userNameText;
lv_obj_t* passwordText;

static void event_handler(lv_event_t* e)
{
    lv_event_code_t code = lv_event_get_code(e);
    if (code == LV_EVENT_CLICKED) {
        LV_LOG_USER("Enter was pressed. The current text is: %s", 
lv_textarea_get_text(userNameText));
    }
}


void lv_demo_test(void)
{
    lv_obj_t* userNameLabel = lv_label_create(lv_scr_act());
    lv_label_set_long_mode(userNameLabel, LV_LABEL_LONG_WRAP);     
    lv_label_set_recolor(userNameLabel, true);                      
    lv_label_set_text(userNameLabel, "username:");
    lv_obj_set_width(userNameLabel, 250);  
    lv_obj_set_style_text_align(userNameLabel, LV_TEXT_ALIGN_LEFT, 0);
    lv_obj_align(userNameLabel, LV_ALIGN_CENTER, 0, -80);

    userNameText = lv_textarea_create(lv_scr_act());
    lv_textarea_set_one_line(userNameText, true);
    lv_obj_align(userNameText, LV_ALIGN_CENTER, 0, -40);
    lv_obj_set_width(userNameText, 250);
    lv_obj_add_state(userNameText, LV_STATE_FOCUSED); 

    lv_obj_t* passwordLabel = lv_label_create(lv_scr_act());
    lv_label_set_long_mode(passwordLabel, LV_LABEL_LONG_WRAP);   
    lv_obj_set_width(passwordLabel, 250);
    lv_label_set_text(passwordLabel, "password:");
    lv_obj_set_style_text_align(passwordLabel, LV_TEXT_ALIGN_LEFT, 0);
    lv_obj_align(passwordLabel, LV_ALIGN_CENTER, 0, 0);

    lv_obj_t* passwordText = lv_textarea_create(lv_scr_act());
    lv_textarea_set_one_line(passwordText, true);
    lv_obj_align(passwordText, LV_ALIGN_CENTER, 0, 40);
    lv_obj_set_width(passwordText, 250);
    lv_obj_add_state(passwordText, LV_STATE_FOCUSED); 

    lv_obj_t* loginBtn = lv_btn_create(lv_scr_act());
    lv_obj_add_event_cb(loginBtn, event_handler, LV_EVENT_ALL, NULL);
    lv_obj_align(loginBtn, LV_ALIGN_CENTER, 0, 100);
    lv_obj_set_width(loginBtn, 250);
    lv_obj_t* btnLabel = lv_label_create(loginBtn);
    lv_label_set_text(btnLabel, "login");
    lv_obj_center(btnLabel);
}

这里主要是实现的头文件定义的lv_demo_test函数,同时还有一个事件监听函数event_handler。在这里,我们做了一个简单的登录界面。

5、引用头文件
打开文件夹lv_demo目录下的lv_demo.h文件,找到如下代码:

#include "src/lv_demo_widgets/lv_demo_widgets.h"
#include "src/lv_demo_benchmark/lv_demo_benchmark.h"
#include "src/lv_demo_stress/lv_demo_stress.h"
#include "src/lv_demo_keypad_encoder/lv_demo_keypad_encoder.h"
#include "src/lv_demo_music/lv_demo_music.h"

在后面添加如下一句,引入我们刚才创建的头文件。

#include "src/test/lv_demo_test.h"

因为入口类中就是引用到了这个lv_demo.h,其他的demo都是在这个头文件中引用,我们只是依葫芦画瓢新增了一项。
6、添加启动
打开根目录下的启动文件:LVGL.Simulator.cpp,在main()方法后添加如下代码:

lv_demo_test();

同时把如下代码

lv_demo_widgets();   

注释掉。(默认是打开的,就是刚才第一次运行显示的那个例子)
这几步的目的就是把默认的启动项目干掉,把我自己创建的项目添加进来。

6、点击 调试–开始执行,运行项目,会显示以下我们自己写的个小界面:
在这里插入图片描述

以上是个人操作记录,权当参考,有任何问题欢迎指正。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-12-18 16:11:43  更:2021-12-18 16:14:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:01:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码