嵌入式系统_图形界面应用程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
物理与电子工程学院
《嵌入式系统设计》
设计性实验报告
题目图形界面应用程序设计
系别电子科学与技术系
年级专业
班级学号
学生姓名
指导教师
实验时间
目录
目录 (1)
课题要求 (2)
一.本课题的目的 (2)
二.运行环境 (2)
正文 (2)
一.课题分析 (2)
二.系统设计 (3)
(一)总体流程图 (3)
(二)安装QT步骤 (3)
(三)设计图形界面 (4)
(四)槽函数及相关程序 (5)
(五)pc环境编译运行程序 (6)
(六)ARM环境编译运行程序 (7)
(七)编译led驱动程序 (8)
(八)进入超级终端设置环境变量,运行程序 (8)
三.技术实现问题 (10)
四.总结与体会 (11)
课题要求
一.本课题的目的
学会在Linux 下安装Qt 的基本步骤,学会使用Qt Designer设计界面,编写应用程序,完成编译,本机上运行。学会QT/E 在ARM 设备上的移植方法与步骤。学习QT 中信号与槽的编程。掌握QT/E 在ARM 设备上的常用输入输出设备移植方法。
设计一个简单图形界面,通过按钮的点击动作实现对ARM板Led灯的亮暗控制。
二.运行环境
硬件:up-Star认证考试实践板、PC机Pentium 500 以上, 硬盘10G 以上。
软件:PC机操作系统REDHAT LINUX 9.0+MINICOM+ARM-LINUX + QT + xshell开发环境
正文
一.课题分析
本次实验是通过QT设计一个简单的图形界面,实现对ARM板上的Led灯的亮暗控制。所以应通过QT设计一个界面,在QT操作界面上添加两个动作按钮,分别表示控制led灯的开和关。然后在qt的源文件里编写与这两个按钮相对应的槽函数,通过借鉴实验六(Linux下的LED设备实验)相应的led控制函数,来编写槽函数,槽函数应能实现led灯的亮、灭控制,槽函数调用的是led的相关函数,所以在主程序中应该包括实验六的led 程序,让槽函数调用led程序实现对led的控制。之后对相应的程序进行编译,生成执行文件,然后再将生成的可执行文件移植到开发板上,通过超级终端运行程序。
二.系统设计(一)总体流程图
安装QT
设计图形界面
在myqt.cpp中添加相应的槽函数,完成相关函数的编写在PC环境下编译运
行程序
在ARM环境下编译运
行程序
生成可执行文件
进入超级终端运行程序编译生成led驱动程序
(二)安装QT步骤
1、编译Qt
(三)设计图形界面
本实验的图形操作界面是通过Qt Designer进行设计,Qt设计出来的图形界面就是将来移植到开发板上的触摸屏操作界面,通过添加简单的控件(PushBotton),添加动作按钮,因为已存在图形界面文件,所以只在上面修改即可,具体如下:
运行Qt Designer
[root@localhost testmyqt-x11]#
/home/sprife/for_pc/qt-x11-opensource-src-4.4.0/bin/designer
设计图形界面如下图:
图2.3.1 图形界面
预计实现功能:当点击PushBotton_3按钮时led灯点亮,点击PushBotton_4时led 灯熄灭,exit退出。
(四)槽函数及相关程序
1.Myqt.cpp文件
myqt.cpp文件中主要包含界面控制按钮的槽函数,以及相应的led操作函数,在这里对动坐按钮赋予功能,
#include
#include "myqt.h"
void led(int on_off,int led_number) //led亮暗控制函数
{
int fd;
fd = open("/dev/led", 0);
if (fd<0)
exit(1);
ioctl(fd,on_off,led_number);
close(fd);
}
MyDlg::MyDlg()
{
ui.setupUi(this);
QObject::connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(close()));
QObject::connect(ui.pushButton_3, SIGNAL(clicked()), this, SLOT(ledon()));
//按钮PushBotton_3对应槽函数,点亮led
QObject::connect(ui.pushButton_4, SIGNAL(clicked()), this, SLOT(ledoff()));
//按钮PushBotton_4对应槽函数,关闭led
}
void MyDlg::ledon() //点亮第一个led灯
{
led(0,0);
}
void MyDlg::ledoff() //关闭第一个led灯
{
led(1,0);
}
2.Myqt.h文件
#ifndef __DLG_H__
#define __DLG_H__
#include
#include
#include
#include
#include
#include
#include
class MyDlg : public QDialog
{
Q_OBJECT
public:
MyDlg();
public slots:
void ledon(); //led控制函数
void ledoff();
private:
Ui::Form ui;
};
#endif
(五)pc环境编译运行程序
所有的源代码修改完成后应在pc环境下进行编译,检查代码的正确性,以及对于Qt 设计的可行性进行测试。