嵌入式作业三

发布 2022-10-21 05:55:28 阅读 7536

嵌入式课程实验报告。

姓名:李冬祥。

学号:08808003

小组成员:徐迎春。

专业年级:电信081

指导教师:王东。

实验时间:2011-5-25

西北农林科技大学机电学院。

实验五 qt图形界面应用程序安装。

一、实验目的:

1. 了解在 linux 下安装qt的基本步骤;

2. 学会在 qt 环境在 x11 平台下程序设计的方法;

二、实验内容:

1. 在本机 linux 下编译和使用 qt 例程;

2. 在本机环境下编译和运行一个程序并显示运行结果;

三、实验器材:

pc机、arm2410开发板、网线、串口线等。

硬件:up-arm2410cl、pc机 pentumn500 以上, 硬盘 80g 以上。

软件:pc 机操作系统 rhel4 +xshell + arm-linux 开发环境

四、实验步骤:

编译 qt-x11 环境

在trolltech公司的**上可以**该公司所提供的qt/embedded的免费版本,在安装产品光盘以后,本次实验目录下已有要**的文件,在/arm2410cl/gui/qt/src 下。在做实验前把本次实验用到的三个文件拷贝到/home/sprife/qt4/for_pc 目录下。

实验具体目录可以自行定义,拷贝库文件:

安装编译器 arm-linux-gcc-3.4.1:

将该文件中的 path 变量改为

path=$path:$home/bin:/arm2410cl/gui/qt/tools/usr/local/arm/3.4.1/bin/,存盘后退出。

如果安装正确的话,在任意路径下输入 ar 后按tab 键即可列出编译器文件。 qt 本机环境的搭建需要以下几步:

/configure 是对 qt 进行配置,它包括很多选项,例如可以通过添加“ -no-opengl”等,如果想要进一步了解可以通过键入 ./configure --help 来获得更多的帮助信息。

gmake 与gmake insall 命令分别是编译与安装 qt 环境如果上面各步都能够成功的编译通过, 下面就可以通过运行qt/embedded自带的demo来查看运行结果。

#cd /home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/examples/widgets/wiggly/

#./wiggle

运行结果如下:

实验六 qt图形界面应用程序设。

一、实验目的:

1. 了解在 linux 下安装qt的基础上进行程序设计;

2. 学会在 qt 环境在 x11 平台下程序设计的方法;

3. 了解 qt designer 的使用基本步骤;

4. 学会在使用 qt designer编写程序,编译,本机上运行;

二、实验内容:

1. 在本机 linux 下编译和使用 qt 例程;

2. 在本机环境下编译和运行一个程序并显示运行结果;

3. 在linux 下使用qt designer;

4. 在 qt designer 下编写程序,在本机上运行;

三、实验器材:

pc机、arm2410开发板、网线、串口线等。

硬件:up-arm2410cl、pc机 pentumn500 以上, 硬盘 80g 以上。

软件:pc 机操作系统 rhel4 +xshell + arm-linux 开发环境

四、实验步骤:

上面的步骤完成后,就已经建立好了在本机上开发 qt应用程序的环境,下面编写一个“hello”的程序来了解 qt 程序设计。

我们以一个非常简单的 qt 程序开始qt 的学习。我们首先一行行的分析**,然后我们将会看到怎样编译和运行这个程序。

#include

#include

3 int main (int argc, char *ar**

第 1 行和第2 行包含了两个类的定义:qapplication和 qlabel。对于每一个 qt 的类,都会有一个同名的头文件,头文件里包含了这个类的定义。

因此,你如果在程序中使用了一个类的对象,那么在程序中就必须包括这个头文件。

第 3 行是程序的入口。几乎在使用 qt 的所有情况下,main()函数只需要在把控制权转交给 qt 库之前执行一些初始化,然后 qt 库通过事件来向程序告知用户的行为。argc 是命令行变量的数量,ar** 是命令行变量的数组。

这是一个 c/c++特征。它不是 qt 专有的,无论如何 qt需要处理这些变量。

第 5 行定义了一个 qapplication 对象 app。qapplication 管理了各种各样的应用程序的广泛资源,比如默认的字体和光标。app 的创建需要 argc 和 ar** 是因为 qt 支持一些自己的命令行参数。

在每一个使用 qt 的应用程序中都必须使用一个 qapplication 对象,并且在任何 qt 的窗口系统部件被使用之前创建此对象是必须的。 app 在这里被创建并且处理后面的命令行变量(比如在 x窗口下的-display) 。请注意,所有被 qt 识别的命令行参数都会从 ar** 中被移除(并且 argc 也因此而减少)。

第 6 行创建了一个 qlabel 窗口部件(widget) ,用来显示“hello,qt!” 在 qt 和 unix的术语中, 一个窗口部件就是用户界面中一个可见的元素, 它相当于 windows 术语中的 “容器”加上“控制器” 。按钮(button) 、菜单(menu) 、滚动条(scroll bars)和框架(frame)都是窗口部件的例子。

窗口部件可以包含其它的窗口部件。例如,一个应用程序界面通常就是一个包含了 qmenubar,一些 q*******,一个qstatusbar 和其它的一些部件的窗口。绝大多数应用程序使用一个 qmainwindow或者一个 qdialog 作为程序界面,但是 qt 允许任何窗口部件成为窗口。

在这个例子中,qlabel窗口部件就是作为应用程序主窗口的。

第 7 行使我们创建的 qlabel 可见。当窗口部件被创建的时候,它总是隐藏的,必须调用 show()来使它可见。通过这个特点我们可以在显示这些窗口部件之前定制它们,这样就不会出现闪烁的情况。

第 8 行就是main()将控制权交给 qt。在这里,程序进入了事件循环。事件循环是一种stand-by的模式,程序会等待用户的动作(比如按下鼠标或者是键盘) 。

用户的动作将会产生程序可以做出反应的事件(也被称为“消息” )程序对这些事件的反应通常是执行一个或几个函数。

为了简单起见,我们没有在 main()函数的结尾处调用 delete 来删除 qlabel 对象。这种内存泄露是无害的,因为像这样的小程序,在结束时操作系统将会释放程序占用的内存堆。

下面我们来编译这个程序。建立一个名为 hello 的目录,在目录下建立一个名为 的c++源文件,将上面的**写入文件中。

#cd /home/sprife/

#mkdir hello

#vi 编辑 源文件,填入上述 9 行**

编译程序。#/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake

-project

#/home/sprife/qt4/for_pc/qt-x11-opensource-src-4.4.0/bin/qmake

#make

运行程序:

#./hello

qt 也支持 xml。我们可以把程序的第 6 行替换成下面的语句:

qlabel *label = new qlabel ("

重新编译程序,我们发现界面拥有了简单的 html 风格。如下图:

五、实验总结及心得:

本次实验基本了解在 linux 下安装qt的基本步骤,了解在 linux 下安装qt的基础上进行程序设计;学会在 qt 环境在 x11 平台下程序设计的方法;学会在 qt 环境在 x11 平台下程序设计的方法。在程序中遇到的问题经过请教同学都一一得到了解决,不过有些东西还不是很明白,主要是由于运行时间长的缘故,阻碍了实验进度,在之后的学习运行过程中感觉学到了不少东西,感觉挺有意思的。

在实验过程中,运行时间长确实带来了不少麻烦!但是最后还是收获颇多!

嵌入式作业

电力设备测控系统中的总线通讯协议实现。程俊 200910302013 一 程序实现的功能 嵌入式系统作为测控系统主机,依次每隔30秒获取设备数据,发送给各个传感器。1 程序实现是通个定义的一个数组,然后数组中分别放入 起始标记aa 设备类型 设备编号 数据发送请求55 校验位这里采用求和校验,而将第...

嵌入式作业

专业 电子信息工程班级 电信10 1 任课教师 姓名 学号成绩。题目 查阅相关资料,你认为选用哪一种硬件 芯片 和软件比较适合本专业的要求?为什么?答 个人觉得选用三星的6410芯片更适合本专业的要求,6410对比与2440不会更容易被淘汰,而且现在6410有很多开发板可以供我们自学,比如飞凌的ok...

嵌入式作业

include 基本系统数据类型。include 提供socket函数及数据结构。include 标准输入输出。include 标准库。include 提供错误号errno的定义,用于错误处理。include 字符串函数定义。include read函数 write函数和getpid函数等头文件。i...