野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植

news2025/4/12 21:15:41

摘要

  • 基于野火霸道-V2+3.2寸屏的开发板,下载器为STLINK
  • 分为两个版本,FreeRTOS和裸机版本

裸机

裸机准备

  • lvgl v8.2版本的源码
  • 野火的《触摸画板-3.2寸》与《基本定时器》的代码例程
    在这里插入图片描述

移植

  1. 将基本定时器代码移植到触摸画板-3.2寸的例程中,实现LED的正常反转
    在这里插入图片描述
  2. 将lvgl的源码移植到工程里,此处可以参考正点原子的视频
    在这里插入图片描述
  3. 修改lv_port_disp_template文件
    • 实现disp_init函数并将缓冲区方法设置为1或者2,要注意ILI9341_Init函数里扫描方向要设置为3
      在这里插入图片描述在这里插入图片描述
      在这里插入图片描述
    • 实现disp_flush函数,ILI9341_DrawPixel函数需要自己加上,并添加到头文件里
      在这里插入图片描述在这里插入图片描述
  4. 修改lv_port_indev_template文件
    • 注释掉不用的函数,保留触摸相关函数 -在这里插入图片描述

    • 实现touchpad_init,touchpad_is_pressed,touchpad_get_xy函数

    • XPT2046_TouchDetect是内部函数,注意将其在头文件声明在这里插入图片描述

  5. 在定时器中断回调函数中,调用lv_tick_inc(1),给LVGL提供时钟源
    在这里插入图片描述
  6. 主函数如图所示
    在这里插入图片描述
  7. Hello world的代码效果是蓝底上显示Hello world,Button的代码效果是有个按键触摸能够滑动
注意
  • 头文件LV_CONF中的LV_MEM_SIZE 这个宏定义请注意大小,我设的25kb,太大可能导致报错No space
  • lv_port_disp_template中的缓冲区, static lv_color_t buf_1[MY_DISP_HOR_RES * 20],20这个数也别太大,大了显示的更快,但也可能报错No space

RTOS

RTOS准备

  • FreeRTOS的触摸画板例程

移植

  • RTOS不再赘述,只需要注意别忘记在SysTick_Handler中调用xPortSysTickHandler
    在这里插入图片描述
  • 完成后,创建任务测试任务调度运行情况,画板是否可以画画,LED灯是否翻转

lvgl移植

  1. 继续移植LVGL源码,与裸机相同
  2. 实现disp和indev文件,与裸机相同
  3. 自定义tick源,LV_TICK_CUSTOM设置为1,不需要定时器中断
    在这里插入图片描述
  4. main文件内容
    在这里插入图片描述
    在这里插入图片描述
注意
  1. FreertosConfig头文件中,也需要申请数组空间,configTOTAL_HEAP_SIZE,我在此设置的15kb
  2. lv_port_disp_template中的缓冲区lv_color_t buf_1,我设置了10行
  3. LV_MEM_SIZE宏定义设置为20kb,这几个参数不合适很容易报错No space
  4. 如果使用的是正点的lv_conf头文件,LV_MEM_ADR记得设置为0
  5. LVGL模板资源
    在这里插入图片描述

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

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

相关文章

java springboot将接口查询数据放在系统中 一小时系统更新一次 避免用户访问接口查询数据库缓慢

真到了公司 很多数据库表 特别是常用的功能业务对应的 都是几百万条起步的数据 查询会比较缓慢 那么 我们就可以不用每次都真的查询数据库 例如 我这里有一个接口 通过 封装的 IBookService.list 函数去查询数据库 接口返回是这样的 我们先在启动类 条件装配上 这个接口所在的…

MySQL所有常见问题

一、事务 定义:一组操作要么全部成功,要么全部失败,目的是为了保证数据最终的一致性 在MySQL中,提供了一系列事务相关的命令: start transaction | begin | begin work:开启一个事务commit:提交一个事务rollback:回滚一个事务事务的ACID 原子性(Atomicity):当前事…

信号与线性系统翻转课堂笔记20——系统函数与信号流图

信号与线性系统翻转课堂笔记20——系统函数与信号流图 The Flipped Classroom20 of Signals and Linear Systems 对应教材:《信号与线性系统分析(第五版)》高等教育出版社,吴大正著 一、要点 (1)了解信…

CSU计算机学院2021年C语言期末题目思路分享(后两道题)

文章目录 E: 实数相加——大数加法的拓展原题题目描述输入输出样例输入样例输出 题目思路实现步骤代码和注释 F: 谍影寻踪——链表的思想和运用原题题目描述输入输出样例输入样例输出 题目思路 一点感想 E: 实数相加——大数加法的拓展 原题 题目描述 C语言就要期末考试了&a…

每日一题——LeetCode922

方法一 双指针: 一个偶指针一个奇指针,偶指针每次都指向nums里的偶数,奇指针每次指向nums里的奇数,两个指针交替push进新数组即可: var sortArrayByParityII function(nums) {var even0,odd0,res[],flagtruewhile(r…

C#,入门教程(02)—— Visual Studio 2022开发环境搭建图文教程

如果这是您阅读的本专栏的第一篇博文,建议先阅读如何安装Visual Studio 2022。 C#,入门教程(01)—— Visual Studio 2022 免费安装的详细图文与动画教程https://blog.csdn.net/beijinghorn/article/details/123350910 一、简单准备 开始学习、编写程序…

面试官:了解CountDownLatch吗

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

多线程编程设计模式(单例,阻塞队列,定时器,线程池)

💕"只有首先看到事情的可能性,才会有发生的机会。"💕 作者:Mylvzi 文章主要内容:多线程编程设计模式(单例,阻塞队列,定时器,线程池) 本文主要讲解多线程编程中常用到的设计模式,包括单例模式,阻塞队列,定时…

12.30序列检测(重叠、不重叠、连续、不连续、含无关项)——移位寄存器,状态机;状态机(二段式,三段式)

状态机-重叠序列检测 timescale 1ns/1nsmodule sequence_test2(input wire clk ,input wire rst ,input wire data ,output reg flag ); //*************code***********//parameter S00, S11, S22, S33, S44;reg [2:0] state, nstate;always(posedge clk or negedge rst) b…

仓储革新:AR技术引领物流进入智慧时代

根据《2022年中国物流行业研究:深度探析行业现状(智能设备及智能软件)》,报告中提及:“中国社会物流总额依然保持着较为良好的增长态势,年增速已恢复至常年平均水平。2021年社会物流总额细分中工业物流总额…

机器视觉实战应用:手势、人脸、动作以及手势鼠标构建(一)

CV实战应用手势、人脸、动作以及手势鼠标构建(一)总起 核心思想 手势识别是一种常见的计算机视觉应用,它可以通过摄像头或者预先录制的视频图像来追踪和识别人类手势。手势识别的应用非常广泛,例如在游戏、虚拟现实、人机交互等…

ActiveMQ漏洞合集

目录 介绍CVE-2015-5254:Apache ActiveMQ任意代码执行漏洞漏洞介绍 & 环境准备漏洞发现Nuclei❌Vulmap✅漏洞验证漏洞利用 CVE-2016-3088:Apache ActiveMQ Fileserver远程代码执行漏洞漏洞发现Nuclei✅Vulmap✅MSF✅第三方工具1(漏洞探测…

谷歌Linux内核自动测试平台架构介绍-用自动测试测试难以测试的问题

1 摘要 内核和硬件等低级系统已被证明极难进行有效测试,因此,许多内核测试都是以手动为主方式进行的。现有的大多数测试框架都是为测试与底层平台隔离的高级软件而设计的,而底层平台被假定是稳定可靠的。测试底层平台本身需要一套全新的假设…

单字符检测模型charnet使用方法,极简

Git链接 安装按照上面的说明,说下使用。 把tools下面的test做了一点修改,可以读取一张图片,把里面的单个字符都检测和识别出来。 然后绘制到屏幕上。 import torch from charnet.modeling.model import CharNet import cv2, os import num…

第5课 使用openCV捕获摄像头并实现预览功能

这节课我们开始利用ffmpeg和opencv来实现一个rtmp推流端。推流端的最基本功能其实就两个:预览画面并将画面和声音合并后推送到rtmp服务器。 一、FFmpeg API 推流的一般过程 1.引入ffmpeg库:在代码中引入ffmpeg库,以便使用其提供的功能。 2.捕获摄像头…

“C语言与人生:手把手教你玩转C语言数组,从此编程无难题“

各位少年,我是博主那一脸阳光,由我来给大家介绍C语言的数组的详解。 在C语言中,数组是一种极其重要的数据结构,它允许我们存储和管理相同类型的一系列相关数据。通过理解并熟练掌握数组的使用,开发者能够高效地处理大量…

【Spark精讲】一文搞懂Spark钨丝Tungsten

Tungsten 内存管理机制 催生 Tungsten 内存管理优化的原因主要来自两个方面 。 • Java对象占用内存空间大。 相对于 C/C等更加底层的程序语言, Java对象的存储密度相对偏低。 例如,即使最简单的 “abed” 字符串,用Java的UTF-16编码的情况…

ssm基于web 的个人时间管理系统+vue论文

基于web 的个人时间管理系统的设计与实现 摘要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。传统的个人时间信息管理模式,采用人工登记的方式保存相关数据,这种以人…

Ksher H5页面支付实例指导 (PHP实现)

前文 背景介绍 前两天,公司的项目,为了满足泰国客户的支付需求,要求使用 Ksher (开时支付) 对接任务突然就给了鄙人,一脸懵 … 通过了解客户的使用场景、以及参考官网指导 发现:Ksher支付 最令人满意的便是 —— 提供了…

GitHub 一周热点汇总 第3期 (2023/12/24-12/30)

GitHub一周热点汇总第三期 (2023/12/24-12/30),梳理每周热门的GitHub项目,了解热点技术趋势,掌握前沿科技方向,发掘更多商机。元旦就要到了,提前祝大家新年快乐。 #1 StreamDiffusion 项目名称:StreamDiff…