微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > 之基于QT5.4.1的点亮、熄灭LED的程序开发

之基于QT5.4.1的点亮、熄灭LED的程序开发

时间:10-02 整理:3721RD 点击:

【创龙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界面进行显示。例子虽然简单,但是我们可以举一反三,逐步实现更加复杂的功能。



上一篇:+ 开箱评测
下一篇:之启动方式

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top