[树莓派的GPIO]

树莓派的GPIO

继续跟着树老师学习树莓派

  • 新版的40引脚
  • GPIO
    GPIO(通用输入输出)是一种数字电子接口标准,用于与其他电子设备进行通信和控制。它允许电路或设备通过数字信号与外部世界进行交互。

GPIO接口通常是微处理器、微控制器或单片机上的引脚,可以用于输入和输出信号。通过配置和控制这些引脚,我们可以读取外部传感器的数据或控制外部设备的操作。

在使用GPIO时,通常需要考虑以下几个方面:

  1. 输入模式(Input mode):将GPIO引脚配置为输入模式时,可以通过读取引脚的电平来获取外部传感器的数据。

  2. 输出模式(Output mode):将GPIO引脚配置为输出模式时,可以通过设置引脚的电平来控制外部设备的操作。

  3. 上拉和下拉电阻(Pull-up and pull-down resistors):在输入模式下,可以通过连接上拉电阻或下拉电阻来确定引脚的默认电平。

  4. 中断(Interrupts):某些平台支持GPIO中断功能,可以在引脚状态发生变化时触发中断处理程序。

使用GPIO时,需要根据具体的硬件平台和编程语言进行相应的配置和操作。例如,在树莓派上,可以使用Python编程语言的RPi.GPIO库来控制GPIO引脚;在Arduino上,则使用Arduino编程语言来操作引脚。

总之,GPIO提供了一种灵活的接口,使我们能够与外部电子设备进行通信和控制,广泛应用于物联网、嵌入式系统、机器人等领域。

GPIO引脚分类

  • 电源引脚:5v,3.3v,GND。
  • 控制引脚:可以通过编写程序控制这些引脚输出高低电平。
  • 通讯引脚:SPI,IIC,TXD\RXD 串口通信。

查找树莓派的编码

  • 板载编码
  • BNC编码
  • WiringPi编码

板载编码

在这里插入图片描述

BCM 编码

  • 参考Brordcom SOC的通道编号侧重CPU寄存器。
  • 使用Python控制树莓派引脚时,使用的是WiringPi编码

在这里插入图片描述

WiringPi编码

  • 把扩展GPIO端口从0开始编码。
  • 使用C语言控制树莓派引脚时,使用的是WiringPi编码。

在这里插入图片描述

终端窗口查看引脚编号

  • 1.查看板载编码 pinout
  • 2查看全部编码 gpio readall

pinout

  • 在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

gpio readall在这里插入图片描述

编程实现GPIO控制LED

终端控制GPIO

  • gpio - g mode 4 out #设置管教为输出模式,-g表示是以BMC编码
    # 如果去掉这个参数表示以wiringpi编码方式
  • gpio -g read 4 #读取管脚当前状态
  • gpio -g write 4 1 #设置管脚为高电平
  • gpio -g write 4 0 #设置管脚为低电平

测试

pi@raspberrypi:~ $ gpio -g mode 18 out
pi@raspberrypi:~ $ gpio -g write 18 1
pi@raspberrypi:~ $ gpio -g write 18 0

c语言测试 Geany 新建led.c保存编译

#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;
}

python mu新建led.py 保存编译

# 在这里写上你的代码 :-)
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资源

问题

  • 使用终端输出gpio -g mode 4 out 并没有能设置为输出,gpio readall 一直是 IN 状态
  • 测试别的引脚能控制输入输出 有知道的大神请帮忙指点
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值