前言
树莓派操作GPIO引脚
安装gpio命令
1
| sudo apt-get install wiringpi
|
踩坑
gpio readall
查看引脚编码时报错:Oops - unable to determine board type... model: 17
原因
解决问题
1 2 3
| cd /tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-lastest.deb
|
通过gpio命令操作引脚
设置引脚的输出模式
设置为BCM编码
设置为wiringpi编码
读取引脚状态
设置引脚状态
1
:设置为高电平
0
:设置为低电平
通过Linux内核操作引脚
进入GPIO目录
将需要操作的接口暴露
- 将需要操作的GPIO引脚接口从内核空间暴露到用户空间
<bcm_num>
:需要操作的引脚的BCM编码
进入引脚目录
<bcm_num>
:目录名的后缀为引脚的BCM编号
设置引脚为输出方向
设置引脚的状态
1
:设置为高电平
0
:设置为低电平
注销GPIO引脚
1 2
| cd .. echo <bcm_num> > unexport
|
通过Python3操作GPIO引脚
<bcm_num>
:需要操作的引脚的BCM编码
1 2 3 4 5 6 7 8 9 10 11 12 13
| import RPI.GPIO as GPIO from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(<bcm_num>, GPIO.OUT)
GPIO.output(<bcm_num>, GPIO.HIGH)
GPIO.output(<bcm_num>, GPIO.LOW)
GPIO.cleanup()
|
通过C操作GPIO
<wiringpi_num>
:需要操作的引脚的wiringpi编码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include <wiringPi.h> #define Pin <wiringpi_num>
int main() { if (wiringPiSetup() < 0) { return 1; } pinMode(Pin, OUTPUT); digitalWrite(Pin, 1); digitalWrite(Pin, 0); return 0; }
|
编译
完成
参考文献
哔哩哔哩——树小悉