嵌入式Linux系统应用及项目实践 教学课件 ppt 作者 丰海 第十章_基于QT的嵌入式GUI程序设计基础

上传人:E**** 文档编号:89467178 上传时间:2019-05-25 格式:PPT 页数:17 大小:1.01MB
返回 下载 相关 举报
嵌入式Linux系统应用及项目实践 教学课件 ppt 作者 丰海 第十章_基于QT的嵌入式GUI程序设计基础_第1页
第1页 / 共17页
嵌入式Linux系统应用及项目实践 教学课件 ppt 作者 丰海 第十章_基于QT的嵌入式GUI程序设计基础_第2页
第2页 / 共17页
嵌入式Linux系统应用及项目实践 教学课件 ppt 作者 丰海 第十章_基于QT的嵌入式GUI程序设计基础_第3页
第3页 / 共17页
嵌入式Linux系统应用及项目实践 教学课件 ppt 作者 丰海 第十章_基于QT的嵌入式GUI程序设计基础_第4页
第4页 / 共17页
嵌入式Linux系统应用及项目实践 教学课件 ppt 作者 丰海 第十章_基于QT的嵌入式GUI程序设计基础_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《嵌入式Linux系统应用及项目实践 教学课件 ppt 作者 丰海 第十章_基于QT的嵌入式GUI程序设计基础》由会员分享,可在线阅读,更多相关《嵌入式Linux系统应用及项目实践 教学课件 ppt 作者 丰海 第十章_基于QT的嵌入式GUI程序设计基础(17页珍藏版)》请在金锄头文库上搜索。

1、1,第十章 基于QT的嵌入式GUI程序设计基础,丰海,2,3,开发平台上的4个LED 分别使用S3C2440 的GPB5 GPB6 GPB7 GPB8三个GPIO来控制,4,s3c2410_gpio_cfgpin(S3C2410_GPB5,S3C2410_GPB5_OUTP); s3c2410_gpio_setpin(S3C2410_GPB5,0X1); s3c2410_gpio_cfgpin(S3C2410_GPB6,S3C2410_GPB6_OUTP); s3c2410_gpio_setpin(S3C2410_GPB6,0X1); s3c2410_gpio_cfgpin(S3C2410_G

2、PB7,S3C2410_GPB7_OUTP); s3c2410_gpio_setpin(S3C2410_GPB7,0X1);,LED驱动程序 初始化GPIO管脚,5,static int led_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg) switch(cmd) case 0: printk(“runing command 0 n“); s3c2410_gpio_setpin(S3C2410_GPB5,0X0); break; case 1: printk(“runing

3、command 1 n“); s3c2410_gpio_setpin(S3C2410_GPB5,0X1); break; default: printk(“error cmd numbern“);break; return 0;,LED驱动程序 控制GPIO管脚电平模块,6,应用程序,int main() int i; for(i=0;i10;i+) usleep(200000); ioctl(fd,0,NULL); usleep(200000); ioctl(fd,1,NULL); usleep(200000); ioctl(fd,2,NULL); usleep(200000); ioctl

4、(fd,3,NULL); usleep(200000); ioctl(fd,4,NULL); usleep(200000); ioctl(fd,5,NULL); close(fd); return 0;,7,LED应用程序 QT图形界面设计,8,fhlenovo:/tmp/led_qt_4$ designer-qt4,第一步 用designer 生成界面 文件testx11.ui,9,10,第二步编辑自己定义槽函数的头文件myqt.h,class MyDlg : public QDialog / 通过QDialog基类,建立自己定义的类MyDlg Q_OBJECT public: MyDlg(

5、); / 自定义类MyDlg的构造函数MyDlg() 即类MyDlg创建时就运行的函数 int fd; / 对应于LED灯的设备文件描述符 int led1; int led2; int led3; int led4; / LED1 LED2 LED3 LED4灯的状态 0:灭 1:亮 public slots: void led11(); void led12(); void led13(); void led14(); / LED1 LED2 LED3 LED4灯操作槽函数 private: Ui:Form ui; / UI界面对应的对象 ;,11,Signal和Slot的连接方式,12,

6、MyDlg:MyDlg() ui.setupUi(this); QObject:connect(ui.pushButton, SIGNAL(clicked(), this, SLOT(led11(); led1=0; fd=open(“/dev/led“,O_RDWR); if(fd 0)printf(“# device /dev/led open fail#n“); return; ,第三步编辑 myqt.cpp 文件建立信号与槽函数的连接,13,第三步编辑 myqt.cpp 声明SLOT响应,void MyDlg:led11() if(led1=0) ui.pushButton-setSt

7、yleSheet(QString:fromUtf8(“background-color: rgb(255,0,0);“); ioctl(fd,0,NULL); led1=1; else ui.pushButton-setStyleSheet(QString:fromUtf8(“background-color: rgb(170, 255, 255);“); ioctl(fd,1,NULL); led1=0; ,14,主函数main.cpp的建立,#include #include “qt_led_4.h“ #include “myqt.h“ int main(int argc, char *a

8、rgv) QApplication app(argc, argv); MyDlg *mydlg = new MyDlg; return mydlg-exec(); ,15,编译与执行,第四步 使用qmake生成.pro工程文件 fhlenovo:$uic-qt4 qt_led_4.ui -o qt_led_4.h fhlenovo:$ /opt/Embedded/qt-4.5/_install/arm/bin/qmake -project 第五步 通过qmake自动生成Makefile文件 fhlenovo:$ /opt/Embedded/qt-4.5/_install/arm/bin/qmake 第六步 make生成可执行文件 fhlenovo:$ make,16,图形界面实例,第七步 将以下二个文件下载到开发板上 led_driver.ko (LED灯的驱动) qt_led_4 (LED灯的图形界面的应用程序),17,rootEmbedSky sky# ./qt_led_4 -qws,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号