|
首先说明我是Linux、Qt的小白,示例中可能会存在不严谨的地方,欢迎大家给我指出。当初在学习linux的时候,想实现led的开关,在网上找了看了几天都没有找到一个完整的例子,只能自己慢慢摸索,过程非常痛苦,很庆幸期间得到了很多好心人的帮助,所以写一个例程,希望对后人有所帮助。 一、硬件
1、操作的是283APDemo板子上的LED1,对应得GPIO是GPIO-P3.26
二、软件
1、Qt用的是Zlg官方的Qt4.7.3
以下是代码:
------------------MainWindow.cpp-------------------------
- #define DefaultLedName "/dev/gpio-P3.26" //可以根据硬件进行修改
- void MainWindow::show(void)
- {
- qint64 result;
- LedInit();
- result = LedWrite(LED_ON);
- qDebug() << result;
- ledFile->close();
- }
- bool MainWindow::LedInit(void)
- {
- ledFile = new QFile(DefaultLedName);
- if(!ledFile->open(QIODevice::ReadWrite|QFile::Truncate))
- {
- qDebug() << "open led file error";
- return false;
- }
- else
- {
- qDebug() << "open led file sucess";
- return true;
- }
- }
- qint64 MainWindow::LedWrite(char cmd)
- {
- char wcmd = cmd;
- qDebug() << wcmd;
- return (ledFile->write(&wcmd),1);
- }
复制代码
------------------MainWindow.h-------------------------
- #include <QObject>
- #include <QDebug>
- #include <QTimer>
- #include <QFile>
- class MainWindow : public QObject
- {
- Q_OBJECT
- enum LedCmd
- {
- LED_ON = '0',
- LED_OFF = '1',
- };
- public:
- explicit MainWindow(QObject *parent = 0);
- ~MainWindow();
- void show(void);
- bool LedInit(void);
- qint64 LedWrite(char cmd);
- private:
- QFile* ledFile;
- signals:
- public slots:
- };
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|