FreeRTOS LVGL页面切换为LCD纯手动绘制遇到的问题

有时候我们需要将FreeRTOS和LVGL页面切换为LCD纯手动绘制,提供更高的灵活性和可定制性。

  1. 自定义界面设计:使用LCD纯手动绘制界面,可以完全自定义界面的外观和行为。可以根据特定的需求和设计概念创建独特的用户界面,而不受LVGL框架的限制。

  2. 资源优化:LVGL是一个功能强大的图形库,它提供了丰富的控件和功能,但同时也需要占用一定的系统资源。通过使用LCD纯手动绘制,可以根据具体应用的需求,灵活地控制和优化系统资源的使用,提高系统的效率和性能。

  3. 快速原型设计:对于某些项目,可能需要快速原型设计或临时界面,而不需要过多的界面交互和复杂的控件。使用LCD纯手动绘制可以快速实现简单的界面,加快开发进度。

  4. 跨平台兼容性:使用LCD纯手动绘制界面可以实现在不同平台和设备上的交叉兼容性。由于LVGL是基于C语言编写的,通过手动绘制界面可以将应用程序移植到其他平台上,而无需太多的修改和调整。

        在一开始我们尝试了将LVGL界面的更新任务删除,删除的同时创建一个LCD手动绘制任务,然后试图从LCD切换至LVGL界面的时候,删除LCD手动绘制任务,重新创建LVGL任务。很幸运,LCD任务正常地跑起来了,能够正确地显示和更新,但是尝试返回却失败了。

        后来尝试了创建一个LVGL的screen,就是什么内容都没有的,按按键就返回。测试结果表明,在无LCD任务创建的情况下可以正常返回,但是当加入手动绘制的LCD任务创建删除之后,返回可能是卡死在LCD初始化清屏,可能是在操作lcd任务一两步之后就卡死。由于LVGL较大,下载烧录要花上三四分钟,在经过多次调试之后,我观察发现多数情况下,OLED任务并没有卡死,虽然此时LVGL已经是异常了。说明问题应该是出现在LVGL的语法逻辑这些内容上,应该是不属于硬件卡死。结合LCD触摸无反应,我觉得可能是LVGL抢占了。

        我又尝试了不删除LVGL,也不创建LVGL screen的方式,也就是尝试挂起LVGL任务。

        具体流程为:用户进入需要LCD手动绘制的界面,暂停LVGL定时器,挂起LVGL任务,创建LCD手动绘制任务,结束时删除LCD手动绘制任务,恢复LVGL任

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

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

相关文章

9.x86游戏实战-汇编指令mov

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

java实现多级菜单展示(递归)

实体类如下: package com.ssdl.baize.po;import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagge…

cefsharp在splitContainer.Panel2中显示调试工具DevTools(非弹出式)含源代码

一、弹出式调试工具 (ShowDevTools) ChromiumWebBrowser webbrowser; public void showDevTools(){//定位到某元素webbrowser.ShowDevTools(null, parameters.XCoord, parameters.YCoord);

STM32智能农业监控系统教程

目录 引言环境准备智能农业监控系统基础代码实现:实现智能农业监控系统 4.1 数据采集模块 4.2 数据处理与分析 4.3 控制系统实现 4.4 用户界面与数据可视化应用场景:农业监控与优化问题解决方案与优化收尾与总结 1. 引言 智能农业监控系统利用STM32嵌…

代码随想录day37 动态规划(3)

416. 分割等和子集 - 力扣(LeetCode) 解1:二维dp数组,时间O(m*n),空间O(m*n),m、n为dp数组的行和列数。 判断原数组总和能否整除2; 将target设为total // 2(若是total / 2&#…

遇到的异步问题

事例1: app.post("/predictfunc") async def predictfunc(item: Item):# 使用asyncio.to_thread()在单独的线程中运行predict_in_threadresult await asyncio.to_thread(predictfunc_main, item)return result 事例2: app.post("/remo…

PCL从理解到应用【02】PCL环境安装 | PCL测试| Linux系统

前言 本文介绍在Ubuntu18.04系统中,如何安装PCL。 源码安装方式:pcl版本1.91,vtk版本8.2.0,Ubuntu版本18.04。 安装好后,可以看到pcl的库,在/usr/lib/中; 通过编写C代码,直接调用…

华为路由器静态路由配置(eNSP模拟实验)

实验目标 如图下所示&#xff0c;让PC1ping通PC2 具体操作 配置PC设备ip 先配置PC1的ip、掩码、网关。PC2也做这样的配置 配置路由器ip 配置G0/0/0的ip信息 #进入系统 <Huawei>system-view #进入GigabitEthernet0/0/0接口 [Huawei]int G0/0/0 #设置接口的ip和掩码 […

【UE5.3】笔记7 控制Pawn移动

使用A、D键控制角色左右移动 打开我们的BP_Player蓝图类&#xff0c;选择事件图表&#xff0c;添加我们的控制事件 右键&#xff0c;搜索A keyboard&#xff0c;选择A,如下图&#xff0c;D也是 添加扭矩力 首先我们要把我们的player上的模拟物理选项打开&#xff0c;这样我们…

ChatGPT在Java后端开发中的应用与影响

随着人工智能技术的发展&#xff0c;尤其是OpenAI推出的聊天机器人模型ChatGPT&#xff0c;其强大的自然语言理解和生成能力正在改变着我们的生活和工作方式。在Java后端开发领域&#xff0c;ChatGPT同样有着广泛的应用前景&#xff0c;并且能够为Java后端开发者带来诸多好处。…

Caused by: java.io.IOException: Broken pipe

IO异常&#xff1a;管道破裂。 推荐文章&#xff1a;解决java.io.IOException: Broken pipe的报错

JavaFx基础知识

1.Stage 舞台 如此这样的一个框框&#xff0c;舞台只是这个框框&#xff0c;并不管里面的内容 public void start(Stage primaryStage) throws Exception {primaryStage.setScene(new Scene(new Group()));primaryStage.getIcons().add(new Image("/icon/img.png"))…

【不锈钢酸退作业区退火炉用高温辐射计快速安装】

项目名称 不锈钢酸退作业区退火炉用高温辐射计快速安装 改造实施项目简介项目提出前状况:不锈钢生产过程中,各种型号的不锈钢带钢在退火工艺中对带钢温度的准确性要求很高,带钢温度的检测直接影响带钢的产品质量,不锈钢带钢温度测量依靠的是高温辐射计,其测量的准确性、稳…

【Python机器学习】算法链与管道——通用的管道接口

Pipeline类补单可以用于预处理和分类&#xff0c;实际上还可以将任意数量的估计器连接在一起。例如&#xff0c;我们可以构建一个包含特征提取、特征选择、缩放和分类的管道&#xff0c;总共有4个步骤。同样的&#xff0c;最后一步可以用聚类或回归代替。 对于管道中估计器的唯…

@Validated 根据字段的值不同,动态分组校验

GroupSequenceProvider 配置 作用域只在单个对象的字段里 Data GroupSequenceProvider(value TestProvider.class) public class TestRO {NotNull(message "不能为空",groups ValidatedRemark.A.class)Pattern(regexp "2|3|",message "只能为2,…

vue2使用use注册自定义指令实现权限控制

版本环境 vue的版本是^2.6.12&#xff0c;将会使用到Vue.use()、Vue.directive() 适用环境 页面某些按钮&#xff0c;需要受到当前登录用户的“角色”“权限”的影响&#xff0c;通过store获取角色role和权限permission&#xff0c;通过自定义指令的方式&#xff0c;控制某一…

antd DatePicker日期选择框限制最多选择一年

实现效果 实现逻辑 import React, { useState } from react;const ParentComponent () > {const [dates, setDates] useState(null);const disabledDate (current) > {if (!dates) {return false;}const tooLate dates[0] && current.diff(dates[0], days) &…

Appium自动化测试框架1

电脑的浏览器 手机的浏览器 手机上的app 原生的应用 纯java 手机上的app apk 移动网页应用 纯HTML CSS 手机的浏览器上 电脑的浏览器上 混合应用 java html css python代码 Appium python库 Appium 手机 都是代表本机 0.0.0.0 127.0.0.1 localhost 如何启动app 启动参…

土壤养分化验仪:农业生态与可持续发展

随着现代农业技术的不断进步&#xff0c;土壤养分化验仪在农业生产中扮演着越来越重要的角色。这款高科技设备以其高精度、高效率的特点&#xff0c;为农业生态与可持续发展提供了强有力的支撑。 一、农田土壤监测与管理 农田是土壤养分化验仪最主要的应用场所。通过对农田土壤…

【AI】DeepStream(14):图像分割deepstream-segmentation-test示例演示

【AI】AI学习目录汇总 1、简介 deepstream-segmentation-test示例演示了图像的语义分割。两个配置文件,分别加载U-Net和Res-UNet两种分割模型 unet_output_graph.uffunetres18_v4_pruned0.65_800_data.uffU-Net是一个在生物医学图像分割领域广泛应用的卷积神经网络(CNN),…