树莓派GPIO使用
前言
树莓派作为一款linux开发板,除了可以烧录系统作为卡片电脑使用,当然也具备了开发板的通用功能,如:GPIO、Uart、IIC等。
下面记录一下几种使用树莓派GPIO的方式。
查看IO口的方法
树莓派的引脚定义分为
1、通用序号
2、BCM码
3、wPi码
查看序号排布可以使用以下命令
pinout
如图就是树莓派的引脚排布,使用的是从左到右,从上到下的引脚排布
想查看树莓派的所有编码,可以使用以下命令
gpio readall
注意:
由于wiringpi 的作者已经很久没有更新了,新版的树莓派可能存在无法使用上述命令的情况(gpio readall),可以通过以下方法进行解决。
进去tmp目录(临时文件目录)
cd tmp
获取新的包
wget https://project-downloads.drogon.net/wiringpi-latest.deb
解析
sudo dpkg -i wiringpi-latest.deb
成功后就可以正常的使用gpio readall命令了
如图就是树莓派的引脚排布(全)
GPIO使用方式
第一种:
直接通过终端进行调用
在终端按序输入以下命令
gpio -g mode 4 out //将BCM码的4号引脚设置为输出模式
gpio -g write 4 1 //输出高电平
gpio -g write 4 0 //输出低
该方法可以对树莓派进行简单的GPIO操作,但是缺点是麻烦
第二种
可以使用python对树莓派的GPIO进行控制,这也是大多数人使用的方式
首先使用以下命令进行下载python的gpio包
sudo apt-get install python-rpi.gpio
随后进行如下python代码编写,可以在控制台使用nano、vim,也可以使用树莓派的默认IDE进行代码编写
import RPi.GPIO as GPIO #导入GPIO包
import time #导入定时器包
GPIO.setmode(GPIO.BCM) #设置编码,使用BCM码
GPIO.setup(4, GPIO.OUT) #设置引脚为输出模式
#低高电平死循环
while True:
GPIO.output(4,False)
time.sleep(3)
GPIO.output(4,1)
time.sleep(3)
GPIO.cleanup() #释放GPIO资源
结果如下:
由于麻烦,视频懒得上传了,效果是间隔3s的闪烁效果。
(出现警告可以忽略,程序依旧可以正常进行,警告原因未了解)
第三种
使用wiringpi进行编程,这种编程方式可以使用C/C++进行代码编写
前面已经配置好了wiringpi 的库,可以在终端使用nano、vim编写在进行cmake,也可以直接在树莓派提供的IDE进行编写
#include <wiringPi.h>
int main( )
{
// 初始化wiringPi
wiringPiSetup();
//设置引脚为输出模式
pinMode(7, OUTPUT);
//延时为500ms的LED闪烁
while(1)
{
digitalWrite(7, HIGH); delay(500);
digitalWrite(7, LOW); delay(500);
}
return 0;
}
注意:在使用IDE进行编写运行时,无法成功的生成可执行文件,报错找不到wiringpi的相关函数,尝试在终端也是一样的情况,查询后了解需要在生成可执行文件时候添加-lwiringPi的命令
如下会在对应目录生成一个可执行文件
随后可以使用./可执行文件名 的方式进行运行,也可以使用IDE直接点击运行,如果想直接在IDE进行构建可能需要修改构建代码或者怎么makefile,后面再进行尝试。
结尾
至此,使用三种方式进行树莓派点灯完成,又是新的开始。
来自5分钟后的补充
刚提交发布后进行尝试,发现可以直接修改IDE的编译命令,如图:
只需要在红框中的命令的“%e”后面添加 -lwiringPi 即可,别忘了加空格,至此,可以顺利构建生成可执行文件了。