资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
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_GPB7,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 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(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(); / 自定义类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,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-setStyleSheet(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 *argv) 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,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号