明天写了一篇Buildroot建立的文章,等待了几个小时,总算编译完了:
Buildroot系统建立学习笔记(以百问网imx6ull开发板为例)
我们将emmc下载到开发板上即可:
这个QT程序我不恶心槽,实在是太卡了,我做了那么久的嵌入式QT开发,都没写过这样的程序,所以,接出来,我要用开发板运行自己写的QT程序:
1、安装QT开发环境
百问网提供的QT安装包和QT的配置方式有一些问题嵌入式linux应用程序开发详解,配置完成后打开qtcreator后代码提示好多东西都找不到,而且又可以正常编译,这就奇怪了,于是我不用她们提供的开发环境linux伊甸园,自己独立安装。
在ubuntu18.04下安装QT开发环境:
sudo apt-get install cmake qt5-default qtcreator
复制
若果在安装的过程中出现失败,请重新尝试apt-getupdate后再进行重新安装,不然的话就更新源吧!安装完毕之后,在终端敲qt之后按Tab键就可以看见qt早已成功被安装到系统里了:
2、配置交叉编译环境2.1、配置gcc和g++
这部份直接用百问网提供的交叉编译工具就可以啦,这是我的路径:
2.2、配置qmake
这部份就是一部份里的Buildroot交叉编译下来的qmake,在Buildroot目录下执行find.-nameqmake找到这个文件之后配置到QT的编译工具链里即可。
2.3、配置完善工具链
这样交叉编译工具就配置完成了!
3、编写QT测试程序(一)
如何创建QT程序就不用多说了吧!略..(不会自行度娘)
以上实现了一个简单的功能嵌入式linux应用程序开发详解,当用户点击Button按键时,Label控件里的文本变为helloworld,编译完直接运行一下,之后用键盘点击Button,如下所示:
接出来我们须要让这个程序在开发板上运行,须要采用100ask_imx6ull配置的交叉编译工具链来编译:
之后重新编译一下,注意,这个程序是不能直接在PC端运行的,这能在百问网的imx6ull开发板上运行。
因为我的电脑笔记本没有网口,所以目前只能通过SD卡的形式将交叉编译的程序拷贝到开发板上。
接出来操作开发板端,在并口终端将插入的SD卡进行挂载到/mnt目录下,之后在开发板端将其拷到/home/myir目录下:
接出来切换到/etc/init.d/
以下这一些是TSLIB环境变量以及QT应用程序环境变量,假如没有的话,则程序不能正常触摸或则不能正常显示:
将默认的运行程序直接注释掉:
之后保存完切换到/etc目录下,打开vimprofile:
将刚才注释的那部份放在这个文件的末尾:
之后保存后reboot重新启动开发板,切换到cd/home/myir:
执行test_qt:
触摸Button之后:
假如想要程序开机就直接运行,则须要在脚本里让环境变量生效以后,再执行qt程序,以下是我添加的一个启动脚本S85qt.sh:
#!/bin/sh
start() {
echo 4 > /sys/class/backlight/backlight/brightness
source /etc/profile
/home/myir/test_qt &
}
stop() {
exit 1
}
case "$1" in
start)
start
;;
stop)
stop
;;
*)
echo "Usage: $0 {start| stop|restart}"
exit 1
esac
exit $?
复制
这样的话重新开机之后我们的app就可以直接启动了!
4、编写QT测试程序(二)
接出来我们来使用QT控件控制屏幕背光色温,背光照度的操作,只须要往下面这个文件里写具体范围的数值就可以控制背光色温了:
/sys/class/backlight/backlight/brightness
复制
这个在百问的文档里也有描述:
在原先的QT上添加一个滑动条控件:
之后编撰QT程序:
代码如下:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->move(0,0);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
ui->label->setText("Hello World");
}
void MainWindow::on_horizontalSlider_valueChanged(int value)
{
qDebug() <label->setText(QString("backlight:%1").arg(backlight));
QString str = QString("echo %1 > /sys/class/backlight/backlight/brightness").arg(backlight);
QByteArray ba = str.toLatin1();
qDebug() << ba ;
::system(ba);
}
复制
将该程序进行交叉编译,之后拷贝到开发板下,覆盖原先的test_qt,运行疗效如下:
关于QT的学习深入,近来正点原子发布了她们的QT教程,诸位有兴趣可以去正点原子的官网下载学习或则后台回复”QT教程“,即可获得以下文档!
QT项目实战与界面UI
1车载音乐APP项目主界面
车载音乐APP主界面是我们一个UI主界面实战项目,教会你们怎么搭建产品主界面APP,你们可以直接在此项目实战类库上开发自己的产品:
2语音辨识项目界面
目前智能AI音响很火,本项目在正点原子开发板上结合百度云实现简单的语音辨识项目:
3智能家装物联网项目
智能家装也是目前很火的一个方向,本项目结合原子云实现一个简单的智能家装控制中心linux makefile,操作界面如下:
4多媒体播放器
音乐播放器与视频播放器
教程目录
教程目录如下: