Linux驱动18 --- LCD 屏

目录

[一、LCD 屏](#一、LCD 屏)

[1.1 了解 LCD 屏](#1.1 了解 LCD 屏)

[1.2 屏幕参数](#1.2 屏幕参数)

[1.3 编译 LCD 屏驱动](#1.3 编译 LCD 屏驱动)

打开设备树文件

[删除 dtb 文件](#删除 dtb 文件)

打开更改的设备树文件

[回到 SDK 路径编译](#回到 SDK 路径编译)

挂起虚拟机

[拷贝 update.img](#拷贝 update.img)

[1.4 最终现象](#1.4 最终现象)

[二、LVGL 的使用](#二、LVGL 的使用)

[2.1 介绍](#2.1 介绍)

[2.2 软件安装](#2.2 软件安装)

[2.3 创建工程](#2.3 创建工程)

[2.4 工程的配置](#2.4 工程的配置)

[2.5 控件获取](#2.5 控件获取)

[2.6 事件添加](#2.6 事件添加)

[2.7 生成代码](#2.7 生成代码)

[2.8 交叉编译工具配置](#2.8 交叉编译工具配置)

[2.9 程序编译](#2.9 程序编译)

时间获取的是错的


一、LCD 屏

1.1 了解 LCD 屏

显示设备之一

屏幕的使用是需要驱动

而驱动是需要移植的

驱动的移植,需要结合屏幕和板子

最快的方式就是问板子的厂家,有没有做过类似屏幕的移植

屏幕驱动的移植,涉及到 --- 设备树

Linux 开发当下主流的屏幕接口

MIPI DSI

MIPI 联盟,即移动产业处理器接口(Mobile Industry Processor Interface 简称 MIPI)联盟。MIPI(移动产业处理器接口)是 MIPI 联盟发起的为移动应用处理器制定的开放标准和一个规范。

LVDS 接口

LVDS(Low-Voltage Differential Signaling)低电压差分信号,是一种低功耗、低误码率、低串扰和低辐射的差分信号技术,这种传输技术可以达到 155Mbps 以上,LVDS 技术的核心是采用极低的电压摆幅高速差动传输数据,可以实现点对点或一点对多点的连接,其传输介质可以是铜质的 PCB 连线,也可以是平衡电缆。

MIPI 最常用的有两个应用

屏幕:MIPI DSI --- Display

摄像头:MIPI CSI --- Camera

rk3588s的屏幕接口:MIPI DSI

1.2 屏幕参数

分辨率:1024*600

尺寸:7 寸

色彩:32 位/24 位

32 位 --- ARGB8888

A 表示透明度

24 位 --- RGB888

刷新率:60Hz

1.3 编译 LCD 屏驱动

打开设备树文件

将之前写的节点复制到一个可以找到的地方

删除 dtb 文件

防止出现,替换的文件不被编译的问题

打开更改的设备树文件

将刚才复制的节点,放在原来的位置

回到 SDK 路径编译

挂起虚拟机

拷贝 update.img

此刻,屏幕就亮起来了

1.4 最终现象

二、LVGL 的使用

2.1 介绍

在 MCU 阶段使用 GUI Guider

驱动也用 GUI Guider

2.2 软件安装

安装肯定会报错 ,首先确保网络连接

报错后输入指令:

下载完成之后,再次执行安装指令

2.3 创建工程

2.4 工程的配置

2.5 控件获取

2.6 事件添加

2.7 生成代码

2.8 交叉编译工具配置

当前生成的界面可以运行在 ubuntu,但是想让它运行在板子

两者的架构是不一样 --- 所以需要使用交叉编译工具

使用的交叉编译工具是buildroot中的交叉编译工具

找到生成的工程的路径

2.9 程序编译

make -j?? --- 如果你的 ubuntu 有 12 个核,那就 j12

**当前如果在 Gui Guider 中如果重新生成 ,**代码,就不会弹出运行结果了,因为换了交叉编译工具,让程序在板子上运行

2.10 LVGL 中的组件

滑动页的缺点 --- 不能嵌套

滑动块支持嵌套

时间获取的是错的

时间查看指令:date

时间设置指令:date -s "xxxx-xx-xx xx:xx:xx"

相关推荐
liu****6 分钟前
8.list的模拟实现
linux·数据结构·c++·算法·list
biubiubiu070616 分钟前
VPS SSH密钥登录配置指南:告别密码,拥抱安全
linux
小莞尔30 分钟前
【51单片机】【protues仿真】基于51单片机主从串行通信系统
c语言·单片机·嵌入式硬件·物联网·51单片机
Hello_Embed36 分钟前
STM32 环境监测项目笔记(一):DHT11 温湿度传感器原理与驱动实现
c语言·笔记·stm32·单片机·嵌入式软件
人生苦短,菜的抠脚1 小时前
Linux 内核IIO sensor驱动
linux·驱动开发
jz_ddk1 小时前
[LVGL] 从0开始,学LVGL:进阶应用与项目实战(上)
linux·信息可视化·嵌入式·gui·lvgl·界面设计
望获linux2 小时前
【实时Linux实战系列】Linux 内核的实时组调度(Real-Time Group Scheduling)
java·linux·服务器·前端·数据库·人工智能·深度学习
MC丶科2 小时前
【SpringBoot常见报错与解决方案】端口被占用?Spring Boot 修改端口号的 3 种方法,第 3 种 90% 的人不知道!
java·linux·spring boot
江公望2 小时前
ubuntu kylin(优麒麟)和标准ubuntu的区别浅谈
linux·服务器·ubuntu·kylin
Lynnxiaowen2 小时前
今天我们开始学习python语句和模块
linux·运维·开发语言·python·学习