嵌入式Linux应用学习(一) |
您所在的位置:网站首页 › itc灯光控制台怎么操作 › 嵌入式Linux应用学习(一) |
你好!这里是风筝的博客, 欢迎和我一起多多交流。 Windows下QT Creator版本为5.3.2 Linux下QT Creator版本为5.6 首先,在Windows下编译好应用程序: 控制LED,当然要有LED小灯的驱动了,在这里: 嵌入式Linux驱动学习笔记(一)------第一个LED驱动程序 驱动程序不变,把应用程序合并到QT程序里就好了。 Windows下打开QT Creator, 在源文件下添加led.c文件: #include #include #include #include #include "led.h" void led_on(void) { int fd; int val = 1; fd = open("/dev/led", O_RDWR); if (fd < 0) { printf("can't open!\n"); } else write(fd, &val, 4); } void led_off(void) { int fd; int val = 0; fd = open("/dev/led", O_RDWR); if (fd < 0) { printf("can't open!\n"); } else write(fd, &val, 4); } 加了led.c文件,当然要在头文件里加led.h文件啦:#ifndef LED_H #define LED_H void led_on(void); void led_off(void); #endif // LED_H 接着,在mainwindow.h文件里,添加槽函数的定义,修改为如下: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindow *ui; public slots: void open_led(); void close_led(); }; #endif // MAINWINDOW_H 最后,在mainwindow.cpp文件里,修改内容为: #include "mainwindow.h" #include "ui_mainwindow.h" #include #include "led.c" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); resize(480,272); QPushButton *LED_OFF = new QPushButton("LED_OFF",this); QPushButton *LED_ON = new QPushButton("LED ON",this); LED_ON->setGeometry(75, 50, 75, 40); LED_OFF->setGeometry(300, 50, 75, 40); QObject::connect(LED_ON,SIGNAL(clicked()),this,SLOT(open_led())); QObject::connect(LED_OFF,SIGNAL(clicked()),this,SLOT(close_led())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::open_led() { led_on(); } void MainWindow::close_led() { led_off(); } 这样在Windows下一编译,无错误,就可以了。 然后他这些源文件(8个文件把)移到Linux下: 比如我是移动到/work/qt/led目录,我的QT安装目录是/work/qt_install 现在就可以在Linux下编译程序了。 cd /work/qt/led /work/qt_install/bin/qmake 上面这条指令就会生成Makefile. make编译出可执行文件 之后把可执行文件放进根文件系统即可。
开发板运行结果如下: 点击一下左边按钮,开发板小灯即亮。 点击一下右边按钮,开发板小灯即灭。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |