这个是树莓派的qt开始--01--数字输出和输入

查看40pin状态

	gpio readall

各种库齐全
各种库齐全

wiringPi库 官方连接

数字输出

  1. 工程.pro文件中加载wiringPi库
	LIBS += -lwiringPi
  1. mainwindow.cpp添加头文件
	#include <wiringPi.h>
  1. 启动wiring库
	wiringPiSetup();
  1. 设置io为输出
	pinMode(0,OUTPUT);
  1. 控制io状态
	digitalWrite(0,HIGH);
	digitalWrite(0,LOW);

电路

配合手上德飞莱LY-51s开发板来玩
配合手上德飞莱LY-51s开发板来玩
德飞莱是共阳LED组,负极IO,自带430欧排阻。
德飞莱这个排灯是正极电源,负极IO,带430欧排阻。
因为树莓派的io电压最高3.3v,所以电源连接gpio1 --3.3v。
io使用wpi-0

程序

不喜欢blink
不喜欢blink

简单程序开灯上边满格,关灯0;

源码
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

void init();    //定义初始化函数
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_openButton_clicked();

    void on_closeButton_clicked();

private:

    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <wiringPi.h>


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    init();            //在构造函数中初始化
}



MainWindow::~MainWindow()
{
    digitalWrite(0,1);//在析构函数里边关闭io
    delete ui;
}

void MainWindow::on_openButton_clicked()
{
    digitalWrite(0,0);
    ui->view->setValue(100);
}

void MainWindow::on_closeButton_clicked()
{
    digitalWrite(0,1);
    ui->view->setValue(0);
}
/*----------------------------------------------
 * 定义初始化函数
 * ---------------------------------------------*/
void init()
{
    wiringPiSetup();    //启动wiring库
    pinMode(0,OUTPUT);  //设置io
    digitalWrite(0,1);  //开关io
   // MainWindow::ui->view->setValue(0);

}

信号和槽
信号和槽

数字输入

  1. 工程.pro文件中加载wiringPi库
	LIBS += -lwiringPi
  1. mainwindow.cpp添加头文件
	#include <wiringPi.h>
  1. 启动wiring库
	wiringPiSetup();
  1. 设置io为输入
	pinMode(0,INPUT);
  1. 控制io状态
	digitalRead(0);

电路

同输出一样加一个io使用wpi-1接到矩阵键盘
因为独立按键一端是接地怎么检测电平?
因为独立按键一端是接地怎么检测电平?
所以还是连到矩阵键盘上按一排都有响应
所以还是连到矩阵键盘上按一排都有响应

程序

这个不做窗口

mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>


void init();
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <wiringPi.h>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    init();
    while (1) {

        if(digitalRead(1)) digitalWrite(0,0);
        else     digitalWrite(0,1);
    }
}

MainWindow::~MainWindow()
{
    delete ui;
}
void init()
{
    wiringPiSetup();
    pinMode(0,OUTPUT);
    pinMode(1,INPUT);
    digitalWrite(0,1);

}

本人菜鸟,欢迎指正。

猜你喜欢

转载自blog.csdn.net/bad520fuhao/article/details/82859417