上一篇我们已经搭建好了环境,也就是说我们现在可以在Ubuntu环境下用QT5来开发树莓派的程序了。说得那么复杂,其实重点就在于可视化的开发,是的,可视化的。你可以开发树莓派上运行的窗体程序,当你搭好环境的那一刻就开始了(本系列完结?!。。。)呵呵,所以嘛,我就衍生一下,引入wiringPi库去折腾一下GPIO吧:)
有关这方面的知识请大家自行查询,我只是简单讲一下开发的过程。
先上图看看这个程序。
下面我们开始Step by Step:
打开Ubuntu环境里的QT(请注意:这个QT不是上文的QT,而是针对Ubuntu而安装的版本,我使用的是5.5.1的版本,或者你用Windows下的也可以,避免混淆)我们使用这的目的是为了方便窗体的绘制,代码的编写。
新建一个工程
选择Qt Widgets Application一路默认选下去
到这里看到
看到没有,上面的5.5.1是我在Ubuntu上装的QT,下面那个5.6.2则是我为树莓派编译的,两个不能混为一谈,当然如果你用Windows下的就不会这样,我是为了方便,因为后续基本都会在Ubuntu环境下进行。
选中Ubuntu环境的那个,另一个不管。
接着一路默认,然后经过一些努力我们已经把界面画好了,相关的代码写好了,目前只是做了个窗体架子,还没有实际的函数引入。
现在可以运行一下看看窗体的样子,窗体内部件的绘制等等外观上的东西。其实Ubuntu环境下安装的这个QT 5.5.1作用就在于此了,可以很方便的做出窗体的框架,所见即所得。
窗体编写完毕,然后就可以引入wiringPi库进行核心内容的编写了。
https://git.drogon.net/?p=wiringPi;a=summary
在这里下载最新版2.32,解压缩如下,
在QT里引入wiringPi这个文件夹
然后在适当的地方编写wiringPi库的核心代码。
比如我的:
void MainWindow::initialization()
{
wiringPiSetup(); //初始化
for(int i = 0;i <= 16;i++)
{
pinMode(i,OUTPUT); //output模式
}
for(int j = 21;j <= 31;j++)
{
pinMode(j,OUTPUT); //output模式
}
}
等等。。。
本程序只是简单的GPIO操作。使用了如下函数:
wiringPiSetup() 初始化
pinMode(int pin,int mode) 端口方向设置
pullUpDnControl(int pin,int mode) 输入模式时上拉或者下拉电阻
digitalWrite(int pin,int mode)写端口
digitalRead(int pin)读端口
写完之后保存所有文件退出QT 5.5.1,我们不用它来编译。
进入你工程文件保存的文件夹。
~/raspi/qt5/bin/qmake
make
经过一段时间的等待就可以编译出来了。
然后
scp 你的应用名字 pi@你的树莓派IP地址:/home/pi
将这个应用传到树莓派里。比如我的就是 scp gpio pi@192.168.31.205:/home/pi
OK,最后就跑到树莓派那里去运行程序吧,别忘了要root权限啊。
sudo ./gpio
抛块砖,引片玉。
本程序下载地址:
https://github.com/partx/Qt_Raspi-GPIO.git