1.首先确定GPIO库已经安装,可以参考:
https://blog.csdn.net/sxhexin/article/details/94889079
2.用2种方式测试: 1)wiringpi 库测试 目前该库已经不维护了,官网无法下载。 安装包
gpio readall
代码如下:使用了GPIO29.
#include <wiringPi.h>
#include <stdio.h>
#define GPIO_NUM 29
int main()
{
int cmd;//输入指令
if(wiringPiSetup()==-1)//设备初始化
{
printf("Init GPIO fail\n");
return -1;
}
pinMode(GPIO_NUM,OUTPUT);//设置为输出引脚
digitalWrite(GPIO_NUM,HIGH);//断开状态
while(1)
{
printf("Please input 0/1: 0 means switch off and 1 means switch on\n");
scanf("%d",&cmd);
getchar();//吸收回车符
if(cmd==1)
{
printf("switch on\n");
digitalWrite(GPIO_NUM,LOW); //低电平导通开通
}
else if(cmd==0)
{
printf("switch off\n");
digitalWrite(GPIO_NUM,HIGH); //高电平导通断开
}
cmd=99;
}
}
- 使用pathon进行操作:
GPIO口使用的是BCM编码的格式:
import time
import RPi.GPIO as gpio
GPIO_NUM=21
gpio.setmode(gpio.BCM)#BCM编码方式
print("set high switch off")
print(GPIO_NUM)
gpio.setup(GPIO_NUM,gpio.OUT)#设置为输出端
gpio.output(GPIO_NUM,gpio.HIGH)#设置高电平
time.sleep(5)
print("set low switch on")
gpio.output(GPIO_NUM,gpio.LOW)#低电平
time.sleep(5)
gpio.cleanup()
其中需要注意:GPIO ID使用要正确,否则不会生效,如python中使用的BCM编码,所以使用的是BCM 对应的ID.
|