网站建设公司人员组成,专门做自由行的网站,企业静态网站需要备案吗,搭建论坛网站Qt控制开发板的LED
使用开发板的IO接口进行控制是嵌入式中非常重要的一点#xff0c;就像冯诺依曼原理说的一样#xff0c;一个计算机最起码要有输入输出吧#xff0c;我们有了信息的接收和处理#xff0c;那我们就要有输出。
我们在开发板上一般都是使用开发板的GPIO接口…Qt控制开发板的LED
使用开发板的IO接口进行控制是嵌入式中非常重要的一点就像冯诺依曼原理说的一样一个计算机最起码要有输入输出吧我们有了信息的接收和处理那我们就要有输出。
我们在开发板上一般都是使用开发板的GPIO接口那么我们今天就来学学如何在Ubuntu上来编写代码后在开发板上实现控制LED。
UI界面介绍
我们设计简单一点 我们要使用信号和槽来使用按钮来控制灯的亮灭有两种状态那我们就要是哟个bool类型的信号
1.
2.
编写代码
我们在Ubuntu上是无法直接通过命令来控制开发板上的我们一般是通过写文件的方式来控制的这时候就要用到开发板的用户手册了。
它上面写明了设备树还有驱动的文件地址等等。例如龙芯2k1000 注意部分开发板会在出场的时候就写好这个驱动比如说正点原子的6u开发板会有系统运行的呼吸灯如果有的话要设置。设置方法在代码中有注释需要的看
好讲完了原理我们来上代码
我们说控制IO接口其实就是通过文件写驱动状态那我们就先要读写文件
.h文件的编写
#ifndef WIDGET_H
#define WIDGET_H#include QWidget
#includeQFile//添加QFile头文件QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private slots:void on_pushButton_clicked(bool checked);private:Ui::Widget *ui;QFile file;//声名
};
#endif // WIDGET_H.cpp文件编写 #include widget.h
#include ui_widget.h
#includeQMessageBoxWidget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui-setupUi(this);//指定文件file.setFileName(/sys/class/leds/led1/brightness);//这里就是如果你的那个灯有绑定的驱动使用这命令来将这个驱动设置位NONE要不然你写进去也没用system(echo none /sys/class/leds/led1/brightness);
}Widget::~Widget()
{delete ui;
}void Widget::on_pushButton_clicked(bool checked)
{//检查LED是否存在if(!file.exists()){QMessageBox::about(this,错误,led不存在);}//将文件设置为只写状态因为我们不读它if(file.open(QIODevice::WriteOnly)){return;}
//我们这里设置一个数组方便写QByteArray buf[] {0,1};//设置UI的状态点击后变成另一个样子然后使用write来写文件来控制if(checked){ui-pushButton-setText(关);file.write(buf[0]);}else {ui-pushButton-setText(开);file.write(buf[1]);}//要关闭文件file.close();
}
好了交叉编译的过程就不讲了每个板子都不一样原理知道了你们就自求多福吧。哈哈哈哈
下课 吃饭