初识树莓派 GPIO

在一般单片机平台上,控制 GPIO 口是非常容易的。在代码中配置相应的 GPIO 寄存器,即可全权控制 GPIO。

在片上资源较少的情况下,这种 GPIO 控制方式是合理的。但是,当人们需要处理更加复杂的业务时,通常会选用运行嵌入式操作系统的硬件,如 Linux、WinCE 等。操作系统大大简化了复杂应用(程序)开发的成本,但它也在硬件和应用之间插入了所谓的系统调用,避免了应用中的代码直接访问硬件。也就是说,操作系统把硬件和应用分离开了,应用必须通过相应的系统调用才能控制硬件。硬件资源由操作系统统一管理,统一分配,看似操作更复杂了,实则维护了系统的稳定性和安全性。

读者可以借助这一系列文章循序渐进解开树莓派 GPIO 驱动的神秘面纱。

我们假定读者具备一定的 C 语言基础和单片机基础,因为这里不准备讨论 C 语言和单片机的基础知识。

树莓派 GPIO

树莓派从第一代开始,就板载了丰富的 GPIO 接口,包括普通可编程 IO、UART、SPI、IIC 等。

不同版本的树莓派采用的 CPU 型号不一样,一代采用 BCM2835,二代采用 BCM2836,三代采用 BCM2837,而四代则采用了 BCM2711。虽然型号不同,但调用 GPIO 的方式都大同小异,初学者大部分情况下都可以忽略型号差异。

以最新的树莓派 4B 为例,板卡正面有 2x20 P1 接口,管脚编号和功能分布如下:

初识树莓派 GPIO

初识树莓派 GPIO

树莓派官方 Raspbian 系统还内置了 pinout 指令打印当前树莓派的管脚信息,方便在没有参考手册的情况下,快速对照管脚号。

初识树莓派 GPIO

以前的树莓派硬件版本还有 P2、P3 等接口,但随着硬件迭代更新,最新的树莓派 4B 已经没有这些接口了

电源接口

P1 接口有两个 5V 供电口和两个 3.3V 供电口,位置固定,不可编程配置。其余接口都是 3.3V 电压,不可接 5V,否则会烧坏树莓派。

可配置功能

树莓派的许多特定管脚可以设置成第二功能,比如

  • GPIO12, GPIO13, GPIO18, GPIO19 可以设置成 PWM
  • GPIO14, GPIO15 可设置成串口
  • GPIO7-10 可设置成 SPI0,GPIO16-21 可设置成 SPI1
  • GPIO2, GPIO3 可配置成 IIC

当然,实际使用中,如果功能管脚不够用,也完全可以在其他通用管脚上软件模拟这些接口。

所有管脚的配置项可以查阅官方提供的功能表:https://elinux.org/RPi_BCM2711_GPIOs

初识树莓派 GPIO

  • RPi Hardware - eLinux.org
  • RPi Low-level peripherals - eLinux.org
  • RPi BCM2711 GPIOs - eLinux.org
  • RPi GPIO Code Samples - eLinux.org
  • RPi Serial Connection - eLinux.org
  • RPi GPIO Interface Circuits - eLinux.org
  • RPi HardwareHistory - eLinux.org
  • Raspberry Pi 4 on sale now from $35 - Raspberry Pi
  • Raspberry Pi 3 Model B+ on sale now at $35 - Raspberry Pi
  • Raspberry Pi 3 on sale now at $35 - Raspberry Pi
  • GPIO - Raspberry Pi Documentation
  • Raspberry Pi GPIO Pinout


分享到:


相關文章: