龙芯+FreeRTOS+LVGL实战笔记(新)——02准备工程和驱动文件

2024-09-02 16:36

本文主要是介绍龙芯+FreeRTOS+LVGL实战笔记(新)——02准备工程和驱动文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了完善与优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以前往本人在B站的视频合集(图2所示)观看所有演示视频,合集首个视频链接为:

借助RT-Thread和LVGL,在龙芯板上搞定两个RGB灯的小任务_哔哩哔哩_bilibili

图1 《龙芯+RT-Thread+LVGL实战笔记》所有文章
图2 笔者在B站上的龙芯视频合集

        此外,关于专栏的收费,无非就是笔者想增加一些创作的动力。由于上个专栏受到了厂家关注并请求本人下架,但是已收费的资源不可下架,所以只能无奈的上调了价格(涨价了就无法降价)。而本专栏笔者不再顾忌,将维持该定价,希望朋友们理解和支持。 


        本文是这个实战系列的开始,笔者会手把手教大家把 FreeRTOS 和 LVGL 文件移植到工程项目中,形成一个最基础的工程项目。

一、创建最初的项目

        这一步没啥技术含量,按照新建项目的向导,一步步选择最匹配和最需要的即可,这里把向导的每一步进行了截图(图3~图7),大家跟着选就行了。这里只强调一点,工程名和目录名都不要出现中文和空格。

图3 新建项目向导
图4 确定工程目录和名称
图5 选择处理器型号、工具链版本和操作系统类型
图6 选择所需的LVGL组件
图7 保留默认的添加框架源代码

二、触摸屏驱动文件的准备

        由于后续所有任务的交互都是依赖触摸屏来完成,因此移植触摸屏的驱动就成了当务之急。而且,移植不是简单的把驱动文件加进工程,还要与 LVGL 输入和输出设备的相关代码结合起来。这个部分不难,就是步骤和内容比较多。下面,请跟着笔者先把触摸屏的驱动文件准备好。

2.1 关于输出/输入驱动文件

        其实,上面刚创建好的工程已经包含了屏幕的显示输出驱动文件 ls1x_fb.c 和 ls1x_fb.h(所在目录如图8和图9所示),以及触摸输入驱动文件 gt1151.c 和 gt1151.h(所在目录如图10和图11所示)。

图8 ls1x_fb.c文件所在目录
图9 ls1x_fb.h文件所在目录
图10 gt1151.c文件所在目录
图11 gt1151.h文件所在目录

         但是,这里有个很纠结的问题,前者的显示输出驱动文件是针对横版屏幕(800×480)编写的,而后者的触摸输入驱动文件是针对竖版屏幕(480×800)编写的。因此,必须想办法让两者对屏幕采取一致的驱动方式。笔者选择的是横版屏幕,因此需要把后者的竖版输入替换成横版输入。

2.2 替换触摸输入驱动文件

        龙芯官方已经写好了针对横版的触摸输入驱动文件 gt1151q.c 和 gt1151q.h,放在了开发板的配套例程 10_LCD_touch 中(如图12所示),那接下来我们就用这两个文件去替换工程里原有的 gt1151.c 和 gt1151.h

图12 配套例程里的横版触摸输入驱动文件

        替换这一步也很简单,把工程里原有的触摸输入驱动文件删除,拷入新的文件,并将其添加进当前工程(添加 .c 文件即可),如图13~图15所示。

图13 替换为gt1151q.c文件
图14 替换为gt1151q.h文件
图15 把新的驱动文件加入工程

2.3 补充头文件路径

        这一点没什么可解释的,C的工程要求把所有头文件所在的路径都添加进来,按照当前的工程目录,图16所示的几个路径是需要手动添加的,如果你自己还规划了其他目录放头文件,也请一并加进来。

图16 补充的头文件路径

        关于触摸屏驱动文件的准备,到这里先告一段落,下一篇笔者将着手对相关文件中的代码进行修改,完成后续的移植工作。

(本文完)

这篇关于龙芯+FreeRTOS+LVGL实战笔记(新)——02准备工程和驱动文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130485

相关文章

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Pandas使用SQLite3实战

《Pandas使用SQLite3实战》本文主要介绍了Pandas使用SQLite3实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1 环境准备2 从 SQLite3VlfrWQzgt 读取数据到 DataFrame基础用法:读

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统