嵌入式UI开发-lvgl+wsl2+vscode系列:11、SSD202移植运行评估demo程序

news2024/9/20 6:18:33

一、前言

接下来我们根据开发板的LVGL指南移植lvgl的demo程序到开发板上,以及将一个评估的项目移植到开发板上,你将会发现移植lvgl到ssd2xx的板子上似乎很简单,但通过评估程序你将更加方便了解lvgl是否可以满足你的开发需求,除了评估开发板子的资源外,是否可以实现客户的设计需求也是开发前进行技术评估很重要的一点。

二、资料收集

开发板lvgl使用指南:https://blog.csdn.net/ami82/article/details/138792405
lvgl评估demo:https://gitee.com/mFlying/lv_demo_hub
注意点:点屏程序开发板会提供,这些评估demo或测试程序都需要先运行点屏程序。(点屏简单来讲就是主板驱动显示屏和触摸屏)

三、评估demo交叉编译及运行

1、编译

根据这里:https://gitee.com/mFlying/lv_demo_hub#ssd2xx%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91%E8%AF%B4%E6%98%8E

# 拉取代码
git clone  https://gitee.com/mFlying/lv_demo_hub.git
cd lv_demo_hub/
# 安装cmake
sudo apt install cmake
# 使用cmake编译
mkdir build
cd build
cmake .. -DFLYING_PLATFORM="linuxarm" -DCMAKE_TOOLCHAIN_FILE="./cmake_conf/toolchain.cmake"
make -j8

编译成功:
image.png

2、运行问题解决

拷贝对应lv_demo_hub、resource、run.sh到开发板上,运行测试(可能出现error while loading shared libraries: libmi_common.so: cannot …):
image.png
搜索libmi_common.so后将路径(/config/lib)添加到run.sh:
image.png
修改run.sh,修改export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./resource/lib:/config/lib

###
 # @Author: Flying
 # @Date: 2022-03-27 11:48:31
 # @LastEditors: Flying
 # @LastEditTime: 2022-07-20 20:10:01
 # @Description: 新建文件
###
nolog_op=""
is_cp_knx="cpknx"
for param in "$@"
do
    if [ "$param" == "nolog" ]; then
        nolog_op="nolog"
    fi

done


export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./resource/lib:/config/lib
chmod a+x ./lv_demo_hub

#sd卡无法运行bug
cp ./resource/lib/libfreetype.so.6.18.0 ./resource/lib/libfreetype.so.6
cp ./resource/lib/librlottie.so.0.2 ./resource/lib/librlottie.so.0

#清理缓存:临时
echo  3 > /proc/sys/vm/drop_caches

if [[ "$nolog_op" == "nolog" ]]
then
    ./lv_demo_hub $2 >>/dev/null 2>&1
else
    ./lv_demo_hub $1
fi

再运行就没有上述找不到库的错误了。

3、运行结果

运行命令:

  • ./run.sh 双buffer fb
  • ./run.sh 0 单buffer fb
  • ./run.sh 1 旋转90度
  • ./run.sh 2 旋转180度
  • ./run.sh 3 旋转270度

目前测试双buffer fb会出现断错误,但是单buffer或者旋转都是正常的(我是ssd202的板子),评估运行各个控件都是可以的,UI的效果也很不错,这里的评估demo包含了lvgl源码中的控件示例以及一些网上开源的demo,可以根据开发需求来评估lvgl是否可以实现,非常推荐大家试一下:
image.png

四、开发板lvgl指南demo尝试

接下来我们试一下开发板厂家提供的lvgl的demo程序,理论上和上述的评估demo差不多,你可以对照评估demo的目录和厂家的程序目录来分析一下,这个后续我们移植到mcu时会再来具体说明一下各个目录的移植,目前来看对于ssd2xx的芯片,评估demo显然比厂家的demo更加丰富,但是好在厂家的文档还提供了gui工具的使用,这个会大大提高我们使用lvgl开发界面的效果。

1、编译

先编译基础的demo程序:

git clone https://github.com/industio/ido-lvgl8.2.git

cd ido-lvgl8.2
mkdir objs
mkdir output
make clean
make -j16

image.png

2、运行测试

然后拷贝app程序到设备上并在设备上运行:

chmod +x app
./app

可以通过slide调节上面图片的清晰度:
image.png

五、最后

基本评估demo将各个控件都实现集成进去了,评估效果还是可以的,开发板官方的lvgl程序也可以正常运行,更推荐使用评估demo程序,非常全面。
接下来我们根据指南学习一下GUI Guider安装和使用,使用该工具设计界面就类似于Qt的设计师工具,目前其功能还不够完善,部分控件可能还是得写代码,这个也是我们前面全面了解控件的原因,ui工具无法设计的则直接写代码,而且写代码动态生成界面有时候也是必要的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2072997.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JS 遍历请求数据,实现分页

JS 遍历请求分页 文章目录 JS 遍历请求分页效果图递归方式for循环 效果图 递归方式 const pageSize 10; // 假设每页10项/*** 接收页码和每页项数,返回Promise对象*/ function paginateData(page, pageSize) {return new Promise((resolve, reject) > {setTime…

用甜羊浏览器一键登录30个微店店铺的便捷之道

导语:微店是目前越来越受欢迎的电商平台,对于经营者来说,登录管理多个店铺可能是一项繁琐的任务。而甜羊浏览器的强大功能和智能体验,能够帮助用户轻松实现一键登录30个微店店铺,极大地提高了效率。本文将为大家介绍如…

3D打印随形透气钢:模具排气创新解决方案

在飞速发展的制造业中,技术的每一次飞跃都深刻影响着行业的进步。其中,3D打印随形透气钢技术的诞生,如同一股清新的风,为模具制造中的困气问题带来了革命性的解决方案。 简单来说,3D打印随形透气钢就是一项能够根据模具…

【Vue3教程】组件通信

组件通信 一、props二、自定义事件三、mitt四、v-model五、$attrs六、$refs 和 $parent七、provide&#xff0c;inject八、pinia九、插槽默认插槽具名插槽作用域插槽 总结 一、props 概述&#xff1a;props是使用频率最高的一种通信方式&#xff0c;常用与&#xff1a;父<—…

vue3 element-plus el-table 多层级表头动态渲染。

效果图: html: <el-table :data"arrlist" border style"width: 100%"><template v-for"(i, index) in currentFieldData" :key"index"><el-table-column :label"i.label" :header-D"i.headerAlign&q…

北京理工大学“源源不断”团队在全国大学生物联网竞赛中获得一等奖

在2024年8月24日结束的全国大学生物联网设计竞赛&#xff08;华为杯&#xff09;全国总决赛中的&#xff0c;北京理工大学的“源源不断”团队获得一等奖。 该团队的两名创始成员&#xff0c;张卓玉和杜智聪同学&#xff0c;曾在信息与电子学院李海老师的《智能物联网应用设计》…

vTable实现多维表格

介绍 vTable是字节开发的一款能用来渲染表格的库&#xff0c;是用canvas渲染&#xff0c;避免了传统用dom组件表格的一些问题&#xff0c;能很快的渲染出上万格子的表格。 接下来我将使用vTable构建类似下面的多维表格&#xff0c;其中quantity、sales等是指标。 使用 官网地址…

TensorRT部署模型入门(pythonC++)

文章目录 1. TensorRT安装1.1 cuda/cudnn以及虚拟环境的创建1.2 根据cuda版本安装相对应版本的tensorRT 2. 模型转换2.1 pth转onnx2.2 onnx转engine 3. TensorRT部署TensorRT推理&#xff08;python API&#xff09;TensorRT推理&#xff08;C API&#xff09; 可能遇到的问题参…

洛谷 P2254 [NOI2005] 瑰丽华尔兹

题目来源于&#xff1a;洛谷 题目本质&#xff1a;动态规划&#xff0c;单调队列 解题思路&#xff1a; f[i][x][y] max(f[i - 1][x’][y]) dist(x,y,x,y); i表示的是第i个时间段结束后&#xff0c;(x,y)这个位置最长的滑行距离。 注意(x,y)与(x,y)必定是在同一列或同一行…

数据结构之排序(一)

目录 一.排序的概念及其运用 1.1排序的概念 1.2 常见的排序算法 1.3排序的用途 二、排序的原理及实现 2.1插入排序 2.1.1基本思想 &#xff1a; 2.1.2排序过程&#xff1a; ​编辑2.1.3代码实现 2.1.4直接插入排序的特性总结&#xff1a; 2.2希尔排序&#xff08;希尔…

【TB作品】PIC16F1719单片机,EEPROM,PFM,读写,PIC16F1718/19

对于PIC16F1719单片机&#xff0c;没有直接的EEPROM&#xff0c;而是使用高耐久度的程序闪存&#xff08;PFM&#xff09;作为非易失性数据存储区域。这个区域特别适合存储那些需要频繁更新的数据。读写这个内存区域需要操作一些特殊功能寄存器&#xff0c;比如用于地址的PMADR…

Python - sqlparse 解析库的基础使用

安装 首先打开命令行&#xff0c;输入&#xff1a; pip install sqlparse这样就显示已经安装好了 使用 创建一个 Python 项目&#xff0c;导入 sqlparse 包&#xff1a; 1. parse sql "select * from table1 where id 1;"# 1. parse # parse方法将 SQL语句 解析…

全网最适合入门的面向对象编程教程:38 Python常用复合数据类型-使用列表实现堆栈、队列和双端队列

全网最适合入门的面向对象编程教程&#xff1a;38 Python 常用复合数据类型-使用列表实现堆栈、队列和双端队列 摘要&#xff1a; 在 Python 中&#xff0c;列表&#xff08;list&#xff09;是一种非常灵活的数据结构&#xff0c;可以用来实现堆栈&#xff08;stack&#xff…

如何使用ssm实现国学文化网站的设计与制作

TOC ssm187国学文化网站的设计与制作jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范…

【Kaggle】练习赛《有毒蘑菇的二分类预测》(上)

前言 本篇文章介绍的是Kaggle月赛《Binary Prediction of Poisonous Mushrooms》&#xff0c;即《有毒蘑菇的二分类预测》。与之前练习赛一样&#xff0c;这声比赛也同样适合初学者&#xff0c;但与之前不同的是&#xff0c;本次比赛的数据集有大量的缺失值&#xff0c;如何处…

没有找到c:\windows\system32\msrd3x43.dll。

打开鸭子串口工具&#xff0c;总会出现这个弹窗&#xff1b; 原因&#xff1a;没有以管理员身份运行 解决办法&#xff1a; 1.不用理会它&#xff0c;对串口工具运行没有任何影响。就算你下载了也没用&#xff0c;依然会有提示。 2.或者鼠标右键&#xff0c;以管理员身份运…

go国内源设置

一、背景 部分网络环境不稳定、丢包或无法连外网&#xff0c;在编译go代码时&#xff0c;需要更新相关依赖&#xff0c;可通过设置go国内源地址来更新。 二、国内可用镜像源 2.1 镜像源一 https://goproxy.cn 2.2 镜像源二 https://goproxy.io 2.3 镜像源三 https://gop…

零基础学习Redis(6) -- string类型命令使用

redis中&#xff0c;不同的数据结构有不同的操作命令。 redis中的string是按照二进制存储的&#xff0c;不会对数据做任何编码转换。 1. set / get 命令 为了方便使用&#xff0c;redis提供了多个版本的get / set命令来操作字符串 1. set set key value [expiration EX sec…

NVIDIA将在Hot Chips 2024会议上展示Blackwell服务器装置

NVIDIA 将在 Hot Chips 2024 上展示其 Blackwell 技术堆栈&#xff0c;并在本周末和下周的主要活动中进行会前演示。对于 NVIDIA 发烧友来说&#xff0c;这是一个激动人心的时刻&#xff0c;他们将深入了解NVIDIA的一些最新技术。然而&#xff0c;Blackwell GPU 的潜在延迟可能…

iptables: Chain Already Exists:完美解决方法

iptables: Chain Already Exists&#xff1a;完美解决方法 &#x1f525; iptables: Chain Already Exists&#xff1a;完美解决方法 &#x1f525;摘要引言正文内容 &#x1f4da;什么是 Chain already exists 错误&#xff1f; &#x1f914;常见原因及解决方法 &#x1f52…