您的位置:首页 > 编程语言 > Qt开发

树莓派3QT+wiringPI控制GPIO输入和输出

2016-11-08 20:02 681 查看
今天和大家分享一下树莓派上使用QT和wiringpi进行GPIO控制的相关知识,这里面有很多需要我们注意的地方。在开始说明问题之前,我先介绍一下我的平台,我是控制树莓派的两个GPIO端口,间隔500ms左右交替输出高低电平,同时我使用STM32芯片去读取我输出的高低电平并显示出来,用来检验树莓派是否真的输出了有效的电平信号。我们使用QT来编写和编译我们的程序,但是这里有一个需要注意的地方,那就是QT编写出来的程序需要在中断使用sudo命令来运行,而不能直接双击运行,因为wiringpi中的函数有些需要使用root权限才能正常执行,这单需要各位注意。其实我的想法就是先用QT编写和编译好我们需要运行的代码,之后我们再去写一个脚本去调用这些程序,使这些程序获得root权限,从而可以正常的执行。

我们在编写wiringpi的程序的时候需要注意的是wiringpi对GPIO的编码方式以及BCM物理编码方式的区别,如下图给大家解释一下:



我们把注意力放在红色方框上,其他的分析方法也类似,其中physical两列是对应树莓派上引出的两排排针,顺序是拿着树莓派网卡空对着我,然后排针从上往下数即为图中的顺序,wpi列对应的wirpingpi函数所传递的参数,而BCM列则为BCM编码方式下的GPIO编号。其实我们在使用wiringpi开发我们的程序的时候我们只需要关注两个参数,一个是wiringpi的GPIO编号,还有一个就是该GPIO对应在树莓派实际的物理排针位置。这里我们树莓派举个例子,比如我们需要操作树莓派第11和12GPIO,就是对应树莓派上,第6行上面的两个排针,数好位置之后,我们发现树莓派上第6行上面的两个排针所对应的wpi编号为0和1,这是我们在使用wiringpi函数传递的参数为0和1即为操作物理上第11和12号GPIO。分析好GPIO的wiringpi和物理对应方式之后我们就可以开始使用QT进行编程了,打开QT并建立工程,在主界面输入一下代码(需要在QT中配置一下wiringpi的库文件),如下图:





当编写好函数,使用QT编译完成之后我们可以发现目录下有一个执行的文件,这时候我们不能使用双击的运行(你使用双击方式运行可执行文件,发现并不能达到预期的效果,原因上面已经阐述过了),我们使用终端的方式运行该程序。

cd 可执行文件目录
sudo ./可执行文件最终的执行效果如下:



下面show一下运行的结果图:





可以从STM32的LCD屏幕上看书,每个500ms左右,其电平从0跳变成1,或者从1跳变成0,完成整个GPIO的测试功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv qt 树莓派