之基于QT5.4.1的点亮、熄灭LED的程序开发
【创龙AM4379 Cortex-A9试用体验】之基于QT5.4.1的点亮、熄灭LED的程序开发
在上一篇使用报告中,我们初步的移植了QT5.4.1到创龙TL4379开发板,并做了一个简单的测试Demo。这篇测试报告在上一篇的基础上,结合创龙提供的例程,编写一个基于我们自己移植好的QT5.4.1的LED点亮、熄灭LED灯的测试程序。
1.创建工程
进入/media/tl-437x目录,启动qtcreator,创建一个QT工程,工程名为qt-led,步骤如下:
在File菜单下选择新建项目,如图所:
选择QtGui Application,如图所示:
设置工程名以及工程路径,如图所示:
选择程序运行的系统平台:
选择GUI的主窗口基类:
最后点击finish按钮,结束工程向导。
设计界面如图所示:
给每个按钮设置命令处理函数,设置方法见上一篇试用报告。
2. 实现各个按钮的功能函数
void Widget::on_led1on_clicked()
{
system("echo 1 > /sys/class/leds/user-led0/brightness");
}
void Widget::on_led1off_clicked()
{
system("echo 0 > /sys/class/leds/user-led0/brightness");
}
void Widget::on_led2on_clicked()
{
system("echo 1 > /sys/class/leds/user-led1/brightness");
}
void Widget::on_led2off_clicked()
{
system("echo 0 > /sys/class/leds/user-led1/brightness");
}
void Widget::on_led3on_clicked()
{
system("echo 1 > /sys/class/leds/user-led2/brightness");
}
void Widget::on_led3off_clicked()
{
system("echo 0 > /sys/class/leds/user-led2/brightness");
}
void Widget::on_led4on_clicked()
{
system("echo 1 > /sys/class/leds/user-led3/brightness");
}
void Widget::on_led4off_clicked()
{
system("echo 0 > /sys/class/leds/user-led3/brightness");
}
void Widget::on_ledallon_clicked()
{
system("echo 1 > /sys/class/leds/user-led0/brightness");
system("echo 1 > /sys/class/leds/user-led1/brightness");
system("echo 1 > /sys/class/leds/user-led2/brightness");
system("echo 1 > /sys/class/leds/user-led3/brightness");
}
void Widget::on_ledalloff_clicked()
{
system("echo 0 > /sys/class/leds/user-led0/brightness");
system("echo 0 > /sys/class/leds/user-led1/brightness");
system("echo 0 > /sys/class/leds/user-led2/brightness");
system("echo 0 > /sys/class/leds/user-led3/brightness");
}
编译QT工程,在/home/myqtproject/qt-led-build-tl4379-tslib-Debug下查看编译好的QT可执行程序,如图所示:
3. 测试LED亮灭控制程序
1)拷贝qt-led到NFS共享目录
cp //home/myqtproject/qt-led-build-tl4379-tslib-Debug/qt-led/nfsshare
2) 开发板挂载NFS
mount -t nfs 192.168.1.136:/nfsshare /mnt-o nolcok
3) 关闭TL-4379板载自动启动的UI程序
/etc/init.d/matrix-gui-2.0 stop
4) 启动qt-led程序
./qt-let -plugintslib:/dev/input/touchscreen0
程序运行结果如图所示:
此时,我们看到4个LED灯在初始状态下全亮。
我们按下LED2 OFF和LED3 OFF,按钮,效果如图所示:
从图中可以看出,只剩下LED1和LED4亮灯。我们按下ALL OFF按钮,效果如下图所示:
下面的4颗LED等全部熄灭。我们按下ALL ON 按钮,效果如图所示:
4颗LED又全部被点亮。
4. 小结
将QT界面与TL-4379外围硬件相结合,我们实现了通过触摸屏控制LED的亮灭状态,我们还可以通过读取GPIO状态,以QT可视化的GUI界面进行显示。例子虽然简单,但是我们可以举一反三,逐步实现更加复杂的功能。