参考:
TQ6410_QT4.7移植手册.pdf 4.2章节
本文是在
2.6.33+2440 led 灯 驱动程序 (二) 的基础上,从命令行界面到
图形界面的 开发;
中间一些步骤就不详细写了,具体参考上述手册,这里主要给出一些代码
ladtest.h 代码- #ifndef LEDTEST_H
-
#define LEDTEST_H
-
-
#include <QMainWindow>
-
-
namespace Ui {
-
class ledtest;
-
}
-
-
class ledtest : public QMainWindow {
-
Q_OBJECT
-
public:
-
ledtest(QWidget *parent = 0);
-
~ledtest();
-
-
protected:
-
void changeEvent(QEvent *e);
-
-
public slots:
-
void LED1_Toggle();
-
void LED2_Toggle();
-
void LED3_Toggle();
-
void LED4_Toggle();
-
-
private:
-
Ui::ledtest *ui;
-
};
-
-
#endif // LEDTEST_H
ledtest.c 代码- #include "ledtest.h"
-
#include "ui_ledtest.h"
-
-
#include <sys/types.h>
-
#include <sys/stat.h>
-
#include <fcntl.h>
-
#include <string.h>
-
#include <sys/ioctl.h>
-
#include <stdio.h>
-
-
#include <QDirectPainter>
-
-
static int fb;
-
volatile int LED1=0,LED2=0,LED3=0,LED4=0;
-
-
ledtest::ledtest(QWidget *parent) :
-
QMainWindow(parent),
-
ui(new Ui::ledtest)
-
{
-
ui->setupUi(this);
-
int screenWidth=QDirectPainter::screenWidth();
-
int screenHeight=QDirectPainter::screenHeight();
-
this->resize(screenWidth,screenHeight);
-
-
connect(ui->checkBox_LED1,SIGNAL(toggled(bool)),this,SLOT(LED1_Toggle()));
-
connect(ui->checkBox_LED2,SIGNAL(toggled(bool)),this,SLOT(LED2_Toggle()));
-
connect(ui->checkBox_LED3,SIGNAL(toggled(bool)),this,SLOT(LED3_Toggle()));
-
connect(ui->checkBox_LED4,SIGNAL(toggled(bool)),this,SLOT(LED4_Toggle()));
-
-
fb=open("/dev/led-control",0);
-
if(fb<0)
-
{
-
perror("open device leds fail");
-
exit(1);
-
}
-
}
-
-
ledtest::~ledtest()
-
{
-
delete ui;
-
}
-
-
void ledtest::changeEvent(QEvent *e)
-
{
-
QMainWindow::changeEvent(e);
-
switch (e->type()) {
-
case QEvent::LanguageChange:
-
ui->retranslateUi(this);
-
break;
-
default:
-
break;
-
}
-
}
-
-
void ledtest::LED1_Toggle()
-
{
-
LED1=~LED1;
-
if(LED1==0)
-
{
-
ioctl(fb,1,0);//
-
}
-
else
-
{
-
ioctl(fb,0,0);//
-
}
-
}
-
-
void ledtest::LED2_Toggle()
-
{
-
LED2=~LED2;
-
if(LED2==0)
-
{
-
ioctl(fb,1,1);// 1,0 第二个灯,亮
-
}
-
else
-
{
-
ioctl(fb,0,1);// 0,0,第二个灯 灭
-
}
-
}
-
-
void ledtest::LED3_Toggle()
-
{
-
LED3=~LED3;
-
if(LED3==0)
-
{
-
ioctl(fb,1,2);// 1,0 第三个灯,亮
-
}
-
else
-
{
-
ioctl(fb,0,2);// 0,0,第三个灯 灭
-
}
-
}
-
-
void ledtest::LED4_Toggle()
-
{
-
LED4=~LED4;
-
if(LED4==0)
-
{
-
ioctl(fb,1,3);// 1,0 第四个灯,亮
-
}
-
else
-
{
-
ioctl(fb,0,3);// 0,0,第四个灯 灭
-
}
-
}
- qmake -project
-
qmake
-
make
特别注意:
- LED1==0
-
LED2==0
-
LED3==0
-
LED4==0
当我把 LED1修改为 LED==1 时,在开发板上点击能熄灭
led,但是不能点亮led,然后,我再次修改为 LED==0,就,有
可以点亮,又可以熄灭了 ,不知道什么原因?? 最后附上 代码 led-qt.rar
阅读(6552) | 评论(0) | 转发(0) |