树莓派4B学习笔记——点亮你的LED

树莓派的板载资源

树莓派又被叫做卡片式电脑,而且它缺保留了常用电脑所没有的GPIO接口,有了这些接口,我们就可以很方便的使用树莓派来控制其他的辅助外设了;相信学习树莓派的大部分都是学习过单片机的,在STM32的学习中有重点讲解过GPIO,如果不了解的同学可以自己去补一下这块的知识,在此不再去细说GPIO的输入输出分类那些了。
下图是树莓派的资源分布图:
在这里插入图片描述
GPIO是整个嵌入式系统的输入输出端口,通过它们才能采集传感器信号、输出控制量控制外设、利用复用功能与其他外设进行通信。树莓派作为嵌入式中的一大霸主自然是会有这些通用输入输出接口的,如下图所示,树莓派4B一共为我们提供了40个GPIO口,其中包括有电源接口(5V、3.3V、GND)、有复用功能的GPIO口包含I2C接口(SCL、SDA),SPI接口(MISO、MOSI、CLK、CS片选信号SPICE0_N),UART串口接口(TXD、RXD),PWM接口以及普通GPIO口。
在这里插入图片描述

上述IO口的脚位以及对应关系如下所示:(图片来自B站树小悉
在这里插入图片描述
打开命令终端输入pinout也可以查看,如下图所示:
在这里插入图片描述

搭建开发环境

编程环境介绍

在了解了树莓派的资源后,参照学习单片机的思路,自然是需要开始搭建树莓派的开发环境了;这里需要注意一点,在单片机开发中,我们一般使用的都是keil_MDK、IAR、Visual Studio等一些IDE,所谓IDE就是集成开发环境,他包含了代码编辑器、编译器、调试器和图形用户界面等工具,是具有代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件。由于树莓派的本质还是Linux,所以在开发环境上有些许不同,虽然也安装有配套的C语言和Python的IDE,但是有些代码的开发和运行还是需要借助命令行来执行操作。

在树莓派上编程我们可以使用C语言和Python,官方的系统已经安装Python3,有的版本还安装了Python2,笔者此时使用的是最新系统,尝试了一下是没有Python2;
查验自己的树莓派默认使用的是Python是哪个版本的方法如下:
打开终端串口、输入pyhon,观察返回的版本,笔者此处是3.9.2及默认是Python3。
此时按照Python2的语法输入print “hello world”
会发现出现了提示,按照提示修改成Python3的语法格式后可以正常输出hello world。
要退出此界面,输入exit()回车即可回到终端命名窗口。
在这里插入图片描述
除了在终端窗口编程,树莓派还安装了可以桌面编程的应用如下图所示,Geany是C语言编程环境,Thonny是Python的编程环境,有关应用的具体用法参考此视频
在这里插入图片描述

安装树莓派的Wiring Pi库函数

有过单片机开发经验的同学都知道,我们要控制单片机的GPIO口,需要使用相应的库进行操作(当然也有直接操作寄存器的,这里不纠结),树莓派要操作GPIO口也是需要借用库函数来实现的,它的名称叫做Wiring Pi,它使用C和C++开发并且可以被python、ruby或者PHP等其他语言包转。有关其具体的函数介绍参考此文
树莓派的官方系统是没有自带Wiring Pi库的,需要我们自行安装,和之前安装远程桌面xrdp类似,安装步骤如下:
1.打开终端命令窗口,输入 sudo apt-get install wiringpi 回车。
在这里插入图片描述
2.重新进入命令窗口说明已经安装完毕,我们使用指令来看一下树莓派的GPIO详细情况。
在命令行输入 gpio readall,如果出现了

但是新版一般会出现下面这种报错,说无法获取管脚状态。
在这里插入图片描述

解决步骤:

(1)在命令行中输入 以下命令

cd /tmp
wget https://project-downloads.drogon.net/wiringpi--latest.deb
sudo dpkg -i wiringpi-latest.deb

回车等待再次返回命令终端,如下图所示:
在这里插入图片描述
(2)再次输入gpio readall命令,回车就可以看到这张GPIO的表了。
在这里插入图片描述
3.至此我们的wiringpi的库就已经安装好了,这里需要补充一点,如上表第一行我们可以看见有BCM、wPi、Physical,这三个下面都对应的是数字,这三个是树莓派GPIO口的三种编码方式,其中Physical是板载编码,与板子上的引脚编号对应,而另外两种编码方式常用于编程操作(Python使用BCM;C语言使用wPi)。

点亮你的LED

笔者使用的是第板载7号管脚wPi编码也是7,BCM编码为4。

GPIO命令控制LED

此方式使用BCM编码
步骤:
(1)打开终端窗口输入:gpio -g mode 4 out
设置管脚为输出模式,-g表示是以BCM编码#如州去掉这个参数表示以wiringPi编码方式
(2)终端窗口输入:gpio -g read 4 读取管脚当前状态
在这里插入图片描述
返回为0,此时LED未点亮;
(3)终端窗口输入:gpio -g write 4 1设置管脚为高电平为高,LED点亮。
在这里插入图片描述(4)gpio -g write 4 0设置管脚为低电平,关闭LED。

使用Python实现闪烁灯

(1)打开Thonny IDE,输入以下代码:(使用的是BCM编码注意和自己的引脚对应)

import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)#采用bcm编号方式
GPIO.setup(4,GPIO.OUT)#指定使用26号端口
for i in range(1,10):
    GPIO .output(4,GPIO.HIGH)
    sleep(1)
    GPIO.output(4,GPIO.LOW)
    sleep(1)
GPIO.cleanup()

Python编程时要注意缩进,由于没有括号,缩进就代表从属。
输入代码后点击保存,命名为led.py路径选择桌面,点击确定。
在这里插入图片描述
此时我们可以看见桌面已经有了一个led.py的文件。
在这里插入图片描述
点击Run,可以发现LED小灯开始闪烁。
在这里插入图片描述
除了此方式,我们也可以使用终端命令来操作,在桌面新建好led.py后,可以打开终端命名窗口输入cd Desktop 回车
然后在输入 python led.py
在这里插入图片描述
也可以实现操作。
在这里插入图片描述

使用C语言点灯

1.打开GeanyIDE,输入以下代码(使用的是wpi编码注意和自己的引脚对应)

#include <wiringPi.h>
#define Pin 7
int main()
{
	if(wiringPiSetup() <0)
	return 1;
	pinMode(Pin,OUTPUT);
	for(int i=0;i<10;i++)
	{
		digitalWrite(Pin,1);
		delay (200);
		digitalWrite(Pin,0);
		delay (200);
	}
return 0;
}

命名为led.c,保存在桌面。
在这里插入图片描述
点击编译,不报错就OK,如下图:
在这里插入图片描述
然后打开命令终端,输入cd Desktop,切换至桌面目录,

然后输入gcc -o led led.c -lwiringPi(led.c要与自己保存的名称一致)
注意此处如果报错,说明语法有问题,需要自行查找。

最后输入sudo ./led,回车后会发现小灯开始闪烁。
在这里插入图片描述

总结

有关树莓派点灯的笔记就写到这为止了,欢迎大佬指正不妥之处,师从B站树小悉,很多资源来自他们的课程,有需要的同学自己去学习吧,链接之前已经给过了。

树莓派4B入门学习笔记汇总

树莓派4B学习笔记——系统烧录及初次开机
树莓派4B学习笔记——点亮你的LED
树莓派4B学习笔记——IO输入检测
树莓派4B学习笔记——IO通信篇(I2C)
树莓派4B学习笔记——IO通信篇(SPI)
树莓派4B学习笔记——IO通信篇(1-Wire)
树莓派4B学习笔记——IO通信篇(UART)

  • 17
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值