嵌入式Linux系列第12篇:LCD显示及QT

简介: 嵌入式Linux系列第12篇:LCD显示及QT

1.引言

有些嵌入式设备会有一块显示屏,用来显示各种图案、按钮等元素,单片机里常见的UI有emWin、TouchGFX等。Linux里常用QT,Qt是一个跨平台个C++应用程序开发框架。广泛用于开发GUI程序。QT在Windows平台下用来做一些上位机也非常好,使用起来方便简单,同时又开源免费。本篇给大家简单介绍NUC972 平台QT的移植及简单示例,希望对大家有所帮助。

2.环境介绍

2.1.硬件

1) 网上的一个第三方做的NUC972开发板:



有兴趣购买的朋友,可以去他们的淘宝店购买:https://s.click.taobao.com/X8mza8w2) 4.3寸电阻屏

2.2.软件

1) Uboot继续使用之前文章用的,无需改动。

2) Kernel在上一篇基础上,要做一定的修改。3) Rootfs在上一篇基础上,要做一定的修改。

3.内核配置

增加对4.3寸电阻屏的支持1)修改/arch/arm/mach-nuc970/dev.c文件, nuc970fb_lcd_info结构体中增加以下4.3寸屏的支持,


2)另外/drivers/video/Kconfig: 中增加相关配置



内核配置经过以上两个步骤之后,在make menuconfig之后,选择上



如果要将Linux的企鹅logo显示出来,需要,



最后还有一点还有一个背光的问题,


PG3需要设置为高电平,可以开机启动脚本添加下面几句话:echo 195 > /sys/class/gpio/exportecho out > /sys/class/gpio/gpio195 /directionecho 1 > /sys/class/gpio/gpio195 /value图标就显示出来了



经过以上步骤LCD屏幕的显示配置就完成了。另外为了支持触摸,还得做修改:




4.Buildroot配置

QT5配置


5.QT工程搭建

下面看一下我们自己编译的qt例子能不能在arm板子上跑起来。 主要包括以下步骤:1) 在Ubuntu下安装Qt软件,我安装的是qt-opensource-linux-x64-5.10.0.run,在QT官网可以下载到https://download.qt.io/archive/qt/5.10/5.10.0/然后在Ubuntu命令行窗口中./ qt-opensource-linux-x64-5.10.0.run,就会弹出安装界面,为了节约空间,只选择Tools就可以



2) 安装完成后,打开QT,你如果不知道在哪,点击搜索,输入qt就能看到,在单击qt图标就可以打开了,界面和在windows下打开qt的界面一样。然后需要配置交叉编译的环境



3) 下面新建一个简单的QT工程,为了照顾初次接触QT的新手,我尽量描述的详细些a) 新建工程,选择文件-新建文件或项目



接下来是项目名称和路径



然后很重要的是选择和配置Kits,



这里面有两处一定要设置正确:一处是Qt Version,选择下图Buildroot目录中的qmake路径



另外一处是编译器里添加交叉编译器



b)点击mainwindow.ui文件,这里就可以进行图形化的配置了,放入两个元素




c)编译



放入板子中运行,如果直接执行会报如下错误

# ./test
This application failed to start because it could not find or load the Qt platform plugin "eglfs"
in "".
Available platform plugins are: linuxfb, minimal, offscreen.
Reinstalling the application may fix this problem.
Aborted


需要在后面加入-platform linuxfb,执行./test -platform linuxfb,显示如下:



6.结束语

本篇为大家介绍了Linux下QT的简单使用,让大家对Linux下QT移植和交叉编译有一个感性的认识,完善的功能由于时间关系没有去研究,欢迎大家多交流

相关文章
|
5月前
|
网络协议 算法 Linux
【嵌入式软件工程师面经】Linux网络编程Socket
【嵌入式软件工程师面经】Linux网络编程Socket
158 1
|
5月前
|
Linux
Linux交叉编译+粤嵌LCD实现三色图
Linux交叉编译+粤嵌LCD实现三色图
|
3月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
|
3月前
|
Linux
关于linux的qt发布(linuxdeployqt)中opengl版本过高的解决
关于linux的qt发布(linuxdeployqt)中opengl版本过高的解决
|
4月前
|
Oracle 关系型数据库 Linux
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
通过这一连串的步骤,可以专业且有效地在Linux下为Qt编译Oracle驱动库 `libqsqloci.so`,使得Qt应用能够通过OCI与Oracle数据库进行交互。这些步骤适用于具备一定Linux和Qt经验的开发者,并且能够为需要使用Qt开发数据库应用的专业人士提供指导。
145 1
讲解linux下的Qt如何编译oracle的驱动库libqsqloci.so
|
3月前
|
传感器 人工智能 网络协议
:嵌入式 Linux 及其用途
【8月更文挑战第24天】
164 0
|
4月前
|
Ubuntu 算法 Linux
嵌入式Linux的学习误区
**嵌入式Linux学习误区摘要** 1. **过度聚焦桌面Linux** - 许多学习者误将大量时间用于精通桌面Linux系统(如RedHat、Fedora、Ubuntu),认为这是嵌入式Linux开发的基石。 - 实际上,桌面Linux仅作为开发工具和环境,目标不应是成为Linux服务器专家,而应专注于嵌入式开发工具和流程。 2. **盲目阅读Linux内核源码** - 初学者在不了解Linux基本知识时试图直接研读内核源码,这往往导致困惑和挫败感。 - 在具备一定嵌入式Linux开发经验后再有针对性地阅读源码,才能有效提升技能。
|
5月前
|
SQL Linux 数据库
Linux上sqlite的安装和使用方法以及在QT中如何使用sqlite&笔记总结
Linux上sqlite的安装和使用方法以及在QT中如何使用sqlite&笔记总结
|
5月前
|
消息中间件 安全 Java
【嵌入式软件工程师面经】Linux多进程与多线程
【嵌入式软件工程师面经】Linux多进程与多线程
62 1
|
4月前
|
机器学习/深度学习 人工智能 计算机视觉
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城