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

使用SquareLine Studio创建LVGL项目到IMX6uLL平台

文章目录

  • 前言
  • 一、SquareLine Studio是什么?
  • 二、下载安装
  • 三、工程配置
  • 四、交叉编译


前言

遇到的问题:#error LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings,解决方法见# 四、交叉编译

一、SquareLine Studio是什么?

SquareLine Studio 是 LVGL 官方推出的一款跨平台 UI 开发工具,支持 Windows、Linux 和 macOS 平台。SquareLine Studio 采用所见即所得的开发方式,可大大减少用户开发 UI 的时间。
官网https://squareline.io/downloads
在这里插入图片描述

二、下载安装

1.注册
在这里插入图片描述
2.打开软件
下载为软件压缩包,解压缩后双击运行安装程序直接安装【点击option可以自己指定安装路径】即可,安装完成后打开软件,输入注册邮箱、密码,点击 LOG IN:
在这里插入图片描述
勾选获取的许可证,点击 SELECT LICENSE:
在这里插入图片描述
许可证获取成功,点击 START SQUARELINE 即可开始使用:
在这里插入图片描述

https://blog.csdn.net/abcabc123123123123/article/details/124852542

三、工程配置

1.创建工程
在这里插入图片描述

2.设计界面
自行设计,这里只是做一个测试
在这里插入图片描述

3.设置路径

在这里插入图片描述
在这里插入图片描述

4.导出源码
在这里插入图片描述
设置的路径下面就有如下文件:
在这里插入图片描述

四、交叉编译

1.LVGL环境
参考:https://blog.csdn.net/weixin_44236302/article/details/137449365
在这里插入图片描述
将上面生成的代码放在ui文件目录下:

2.更改Makefile文件
将以下代码添加到Makefile中
在这里插入图片描述

# 添加源文件目录  根据自己ui目录下面的文件夹添加
VPATH += :$(LVGL_DIR)/ui
VPATH += :$(LVGL_DIR)/ui/components
VPATH += :$(LVGL_DIR)/ui/fonts
VPATH += :$(LVGL_DIR)/ui/screens# 添加头文件目录 根据自己ui目录下面的文件夹添加
CFLAGS += -I$(CURDIR)/ui
CFLAGS += -I$(CURDIR)/ui/components
CFLAGS += -I$(CURDIR)/ui/fonts
CFLAGS += -I$(CURDIR)/ui/screens# CSRCS 			+=$(LVGL_DIR)/mouse_cursor_icon.c 
#根据自己ui目录下面的文件夹添加
UI_CSRCS += $(wildcard ui/*.c)
UI_CSRCS += $(wildcard ui/components/*.c)
UI_CSRCS += $(wildcard ui/screens/*.c)

3.更改Main.c文件
在这里插入图片描述

#include "lvgl/lvgl.h"
#include "lvgl/demos/lv_demos.h"
#include "lv_drivers/display/fbdev.h"
#include "lv_drivers/indev/evdev.h"
#include <unistd.h>
#include <time.h>
#include <sys/time.h>
#include <stdio.h>
#include "ui/ui.h"#define DISP_BUF_SIZE (800 * 480)int main(void)
{lv_init();/*Linux frame buffer device init*/fbdev_init();/*A small buffer for LittlevGL to draw the screen's content*/static lv_color_t buf[DISP_BUF_SIZE];/*Initialize a descriptor for the buffer*/static lv_disp_draw_buf_t disp_buf;lv_disp_draw_buf_init(&disp_buf, buf, NULL, DISP_BUF_SIZE);/*Initialize and register a display driver*/static lv_disp_drv_t disp_drv;lv_disp_drv_init(&disp_drv);disp_drv.draw_buf   = &disp_buf;disp_drv.flush_cb   = fbdev_flush;disp_drv.hor_res    = 800;//根据自己的LCD分辨率更改disp_drv.ver_res    = 480;//根据自己的LCD分辨率更改lv_disp_drv_register(&disp_drv);/* Linux input device init */evdev_init();/* Initialize and register a display input driver */lv_indev_drv_t indev_drv;lv_indev_drv_init(&indev_drv);      /*Basic initialization*/indev_drv.type = LV_INDEV_TYPE_POINTER;indev_drv.read_cb = evdev_read;lv_indev_t * my_indev = lv_indev_drv_register(&indev_drv); /*Create a Demo*///lv_demo_widgets();ui_init();/*Handle LVGL tasks*/while(1) {lv_timer_handler();usleep(5000);}return 0;
}/*Set in lv_conf.h as `LV_TICK_CUSTOM_SYS_TIME_EXPR`*/
uint32_t custom_tick_get(void)
{static uint64_t start_ms = 0;if(start_ms == 0) {struct timeval tv_start;gettimeofday(&tv_start, NULL);start_ms = (tv_start.tv_sec * 1000000 + tv_start.tv_usec) / 1000;}struct timeval tv_now;gettimeofday(&tv_now, NULL);uint64_t now_ms;now_ms = (tv_now.tv_sec * 1000000 + tv_now.tv_usec) / 1000;uint32_t time_ms = now_ms - start_ms;return time_ms;
}

3.执行编译
切换到工程目录文件
在这里插入图片描述
执行make
在这里插入图片描述
报错:#error "LV_COLOR_DEPTH should be 16bit to match SquareLine Studio's settings"
在这里插入图片描述
解决办法:

进入ui文件夹【自己生成的源目录下面】找到ui.c文件中的TEST LVGL SETTINGS

如果报错为should be 16bit ,那么将#if LV_COLOR_DEPTH != 32改为#if LV_COLOR_DEPTH != 16

如果报错为should be 32bit ,那么将#if LV_COLOR_DEPTH != 16改为#if LV_COLOR_DEPTH != 32

make clean清除编译文件之后,在make
编译成功之后,会在工程目录下生成一个build文件,其中bin文件下面的就是可执行文件【拷贝到开发板上,使用nfs挂载之后,运行】
在这里插入图片描述请添加图片描述

相关文章:

使用SquareLine Studio创建LVGL项目到IMX6uLL平台

文章目录 前言一、SquareLine Studio是什么&#xff1f;二、下载安装三、工程配置四、交叉编译 前言 遇到的问题&#xff1a;#error LV_COLOR_DEPTH should be 16bit to match SquareLine Studios settings&#xff0c;解决方法见# 四、交叉编译 一、SquareLine Studio是什么…...

MATLAB计算投资组合的cVaR和VaR

计算条件风险价值 (Conditional Value-at-Risk, cVaR) 是一种衡量投资组合风险的方法&#xff0c;它关注的是损失分布的尾部风险。 MATLAB代码如下: clc;close all;clear all;warning off;%清除变量 rand(seed, 100); randn(seed, 100); format long g;% 随机产生数据&#x…...

YOLOv7全网独家改进: 卷积魔改 | 变形条状卷积,魔改DCNv3二次创新

💡💡💡本文独家改进: 变形条状卷积,DCNv3改进版本,不降低精度的前提下相比较DCNv3大幅度运算速度 💡💡💡强烈推荐:先到先得,paper级创新,直接使用; 💡💡💡创新点:1)去掉DCNv3中的Mask;2)空间域上的双线性插值转改为轴上的线性插值; 💡💡💡…...

使用vue3搭建一个CRM(客户关系管理)系统

目录 1. 需求分析 2. 设计 3. 技术选型 4. 开发环境搭建 5. 前端开发 6. 后端开发 7. 数据库搭建 8. 测试 9. 部署 10. 维护和迭代 总结 搭建一个CRM&#xff08;客户关系管理&#xff09;系统是一个复杂的项目&#xff0c;涉及到需求分析、设计、开发、测试和部署等…...

Linux虚拟内存简介

Linux&#xff0c;像多数现代内核一样&#xff0c;采用了虚拟内存管理技术。该技术利用了大多数程序的一个典型特征&#xff0c;即访问局部性&#xff08;locality of reference&#xff09;&#xff0c;以求高效使用CPU和RAM&#xff08;物理内存&#xff09;资源。大多数程序…...

合并单元格的excel文件转换成json数据格式

github地址: https://github.com/CodeWang-Ay/DataProcess 类型1 需求1: 类似于数据格式: https://blog.csdn.net/qq_44072222/article/details/120884158 目标json格式 {"位置": 1, "名称": "nba球员", "国家": "美国"…...

云平台和云原生

目录 1.0 云平台 1.1.0 私有云、公有云、混合云 1.1.1 私有云 1.1.2 公有云 1.1.3 混合云 1.2 常见云管理平台 1.3 云管理的好处 1.3.1 多云的统一管理 1.3.2 跨云资源调度和编排需要 1.3.3 实现多云治理 1.3.4 多云的统一监控和运维 1.3.5 统一成本分析和优化 1.…...

ES6 => 箭头函数

目录 语法基本形式 参数 函数体 特点 箭头函数&#xff08;Arrow Function&#xff09;是ES6&#xff08;ECMAScript 2015&#xff09;中引入的一种新的函数语法&#xff0c;它提供了一种更简洁的方式来编写函数。箭头函数有几个显著的特点和优势&#xff0c;下面我们来详细…...

vue将html生成pdf并分页

jspdf html2canvas 此方案有很多的css兼容问题&#xff0c;比如虚线边框、svg、页数多了内容显示不全、部分浏览器兼容问题&#xff0c;光是解决这些问题就耗费了我不少岁月和精力 后面了解到新的技术方案&#xff1a; jspdf html-to-image npm install --save html-to-i…...

数字社会下的智慧公厕:构筑智慧城市的重要组成部分

智慧城市已经成为现代城市发展的趋势&#xff0c;而其中的数字化转型更是推动未来社会治理体系和治理能力现代化的必然要求。在智慧城市建设中&#xff0c;智慧公厕作为一种新形态的信息化公共厕所&#xff0c;扮演着重要角色。本文智慧公厕源头实力厂家广州中期科技有限公司&a…...

比较好玩的车子 高尔夫6

https://www.sohu.com/a/484063087_221273 四万多如愿收获手动挡高尔夫6&#xff0c;可靠性、经济性、操控性兼顾_搜狐汽车_搜狐网 2.基本上其他人也不知道到底是什么相关的车子信息...

智过网:非安全专业能否报考注安?哪些专业可以报考?

近年来&#xff0c;随着社会对安全生产管理的日益重视&#xff0c;注册安全工程师&#xff08;简称注安&#xff09;这一职业逐渐受到广大从业人员的青睐。然而&#xff0c;对于许多非安全专业的朋友来说&#xff0c;他们可能会困惑&#xff1a;非安全专业是否可以报考注安&…...

基于Whisper语音识别的实时视频字幕生成 (一): 流式显示视频帧和音频帧

Whishow Whistream&#xff08;微流&#xff09;是基于Whisper语音识别的的在线字幕生成工具&#xff0c;支持rtsp/rtmp/mp4等视频流在线语音识别 1. whishow介绍 whishow&#xff08;微秀&#xff09;是在线音视频流播放python实现&#xff0c;支持rtsp/rtmp/mp4等输入&…...

STM32+ESP8266水墨屏天气时钟:文字取模和图片取模教程

项目背景 本次的水墨屏幕项目需要显示一些图片和文字&#xff0c;所以需要对图片和文字进行取模。 取模步骤 1.打开取模软件 2.选择图形模式 3.设置字模选项 注意&#xff1a;本次项目采用的是水墨屏&#xff0c;并且是局部刷新的代码&#xff0c;所以设置字模选项可能有点…...

华为机试题

目录 第一章、HJ1计算字符串最后一个单词的长度&#xff0c;单词以空格隔开。1.1&#xff09;描述1.2&#xff09;解题第二章、算法题HJ2 计算某字符出现次数1.1&#xff09;题目描述1.2&#xff09;解题思路与答案第三章、算法题HJ3 明明的随机数1.1&#xff09;题目描述1.2&a…...

【VUE】Vue3+Element Plus动态间距处理

目录 1. 动态间距调整1.1 效果演示1.2 代码演示 2. 固定间距2.1 效果演示2.2 代码演示 其他情况 1. 动态间距调整 1.1 效果演示 并行效果 并列效果 1.2 代码演示 <template><div style"margin-bottom: 15px">direction:<el-radio v-model"d…...

华为 2024 届校园招聘-硬件通⽤/单板开发——第一套(部分题目分享,完整版带答案,共十套)

华为 2024 届校园招聘-硬件通⽤/单板开发——第一套 部分题目分享&#xff0c;完整版带答案(有答案和解析&#xff0c;答案非官方&#xff0c;未仔细校正&#xff0c;仅供参考&#xff09;&#xff08;共十套&#xff09;获取&#xff08;WX:didadidadidida313&#xff0c;加我…...

自己整理的ICT云计算题库四

14. 【多选题】 CIFS 支持的认证方式是以下哪些选项&#xff1f; A: A 全局认证 B: B LADP 域 C: C 本地认证 D: D AD 域 答案 正确答案&#xff1a;ACD 解释 全局认证为先本地&#xff0c;后AD&#xff0c;再LADP 15. 【单选题】 华为 oceanstor v3 smarterase 在使用时…...

5.消息队列

消息队列 ​ 消息队列是一种常用的线程间通讯方式&#xff0c;用来传输数据。使用消息队列传输数据时有两种方法&#xff1a;拷贝&#xff1a;把数据、把变量的值复制进消息队列里&#xff1b;引用&#xff1a;把数据、把变量的地址复制进消息队列里。rtt使用拷贝值的方法。 …...

基于强化学习的对抗意图识别

源自&#xff1a;指挥与控制学报 作者&#xff1a;白亮&#xff0c; 肖延东&#xff0c; 齐景涛 “人工智能技术与咨询” 发布 摘 要 未来智能化战争复杂多变&#xff0c;敌我双方往往以对抗博弈情况出现&#xff0c;当我方作为攻击者时&#xff0c;如何有效隐藏我方意图实…...

Carsim与Matlab Simulink联合仿真四轮电动汽车转向容错控制模型

Carsim与matlab/simulink联合仿真&#xff0c;线控转向&#xff0c;四轮电动汽车转向失效容错控制模型&#xff0c;提供参考文献 线控转向系统&#xff08;Steer-by-Wire&#xff09;在四轮独立驱动电动汽车中的应用越来越火&#xff0c;但转向失效问题始终是悬在工程师头上的…...

知识科普短片,AI如何“看懂”并剪出逻辑?揭秘分段剪辑的内在逻辑链

傍晚&#xff0c;你面对电脑屏幕&#xff0c;刚刚录完一段长达2小时的行业知识分享。你的目标是将其剪成一部15分钟、节奏明快的知识科普短片。手动操作意味着你要反复聆听&#xff0c;识别核心论点&#xff0c;标记关键转折&#xff0c;再小心翼翼地将碎片串联——这个过程动辄…...

Fay开源数字人框架:终极多语言翻译与全球化应用指南 [特殊字符]

Fay开源数字人框架&#xff1a;终极多语言翻译与全球化应用指南 &#x1f30d; 【免费下载链接】Fay fay是一个帮助数字人&#xff08;2.5d、3d、移动、pc、网页&#xff09;或大语言模型&#xff08;openai兼容、deepseek&#xff09;连通业务系统的agent框架。 项目地址: h…...

嵌入式开发五大常见Bug解析与解决方案

1. 嵌入式开发中的五大常见Bug根源解析在嵌入式系统开发领域&#xff0c;代码质量直接关系到产品的可靠性和稳定性。作为一名经历过多个嵌入式项目的开发者&#xff0c;我深刻体会到某些类型的bug特别顽固且难以排查。这些bug往往在实验室测试中难以复现&#xff0c;却在现场运…...

G-Helper完全手册:华硕笔记本终极性能调优指南

G-Helper完全手册&#xff1a;华硕笔记本终极性能调优指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: http…...

三菱Q00/PLC与台达DTA温控器通讯案例 功能:通过三菱QJ71C24N模块与台达DTA温...

三菱Q00/PLC与台达DTA温控器通讯案例 功能&#xff1a;通过三菱QJ71C24N模块与台达DTA温控器进行modbus-rtu通讯&#xff0c;实现温度读取、实际输出率&#xff08;%&#xff09;读取&#xff0c;及温度的设定、和温控探头类型的设定&#xff0c;PLC本体232-COM口与电脑通讯&am…...

SpringBoot整合poi-tl实战:如何优雅导出带动态表格和图片的Word并自动压缩成zip

SpringBoot与poi-tl深度整合&#xff1a;企业级Word动态导出与智能压缩方案 在企业级应用开发中&#xff0c;批量生成结构化的Word文档&#xff08;如报告、合同等&#xff09;并打包分发的需求日益普遍。传统方案往往面临动态内容渲染复杂、性能瓶颈明显、文件管理混乱等痛点。…...

万物识别镜像在内容安全场景的应用:SpringBoot集成与效果展示

万物识别镜像在内容安全场景的应用&#xff1a;SpringBoot集成与效果展示 1. 万物识别镜像技术解析 万物识别-中文-通用领域镜像基于cv_resnest101_general_recognition算法构建&#xff0c;是一个强大的视觉识别工具。这个镜像最突出的特点是能够识别超过5万类日常物体&…...

别再只盯着TOF了!聊聊FMCW激光雷达:它凭什么能直接测速,还自带‘抗干扰’光环?

FMCW激光雷达&#xff1a;重新定义自动驾驶感知边界的三大技术革命 当特斯拉的纯视觉方案与激光雷达阵营的路线之争还在持续时&#xff0c;一种被称为"激光雷达中的特斯拉"的技术正在悄然改写游戏规则。FMCW&#xff08;调频连续波&#xff09;激光雷达不像传统TOF&a…...

Windows下Pytesseract报错‘Error opening data file’?三步搞定TESSDATA_PREFIX环境变量配置

Windows下Pytesseract报错终极解决方案&#xff1a;深入理解TESSDATA_PREFIX环境变量 每次看到屏幕上跳出那个令人沮丧的"Error opening data file"错误提示&#xff0c;我都忍不住想起自己第一次配置Pytesseract时的抓狂经历。作为一个长期与OCR打交道的开发者&…...