Raspberry Pi GPIO的編號規(guī)范


date: 2013-03-22
layout: post
title: Raspberry Pi GPIO的編號規(guī)范
description: Raspberry Pi GPIO numbering
categories:

  • Blog
    tags:
  • Raspberry Pi

{:toc}

樹莓派和普通電腦不一樣的地方在于它還帶了17個可編程的GPIO(General Purpose Input/Output),可以用來驅動各種外設(如傳感器,步進電機等)。但GPIO的編號方法有些混亂,不同的API(如wiringPi,RPi.GPIO等)對GPIO的端口號編號并不一樣,下面則用圖表標明了對應的叫法,這樣在看程序例子的時候可以確定物理是哪個接口。

GPIO庫

  1. wiringPi C,有Perl, PHP, Ruby, Node.JS和Golang的擴展,支持wiringPi Pin和BCM GPIO兩種編號
  2. RPi.GPIO Python,支持Board Pin和BCM GPIO兩種編號
  3. Webiopi,Python, 使用BCM GPIO編號
  4. WiringPi-Go, Go語言,支持以上三種編號

編號規(guī)范

  1. 第一列是wiringPi API中的缺省編號,wiringPiSetup()采用這列編號
  2. 第二列(Name)往往是轉接板的編號
  3. 第三列是樹莓派板子上的自然編號(左邊引腳為1-15,右邊引腳為2-26),RPi.GPIO.setmode(GPIO.BOARD)采用這列編號
  4. 樹莓派主芯片提供商Broadcom的編號方法,相當于調用了WiringPiSetupGpio()RPi.GPIO.setmode(GPIO.BCM)采用這列編號
wiringPi Pin Name Board Pin BCM GPIO
0 GPIO 0 11 17
1 GPIO 1 12 18
2 GPIO 2 13 21
3 GPIO 3 15 22
4 GPIO 4 16 23
5 GPIO 5 18 24
6 GPIO 6 22 25
7 GPIO 7 7 4
8 SDA 3 0
9 SCL 5 1
10 CE0 24 8
11 CE1 26 7
12 MOSI 19 10
13 MISO 21 9
14 SCLK 23 11
15 TXD 8 14
16 RXD 10 15

Rev.2 新增的引腳:

wiringPi Pin Name Board Pin BCM GPIO
17 GPIO 8 28
18 GPIO 9 29
19 GPIO10 30
20 GPIO11 31

<img src="https://pbs.twimg.com/media/BGBhJ4LCAAA50eS.jpg:large" width="600"/>

GPIO轉接板

GPIO轉接板通過彩虹排線可將樹莓派的GPIO引腳轉接到面包板上,方便試驗,下圖是一個相應的產品,可以看到每個引腳標都已標注好了名稱,查上表就知道代碼里該用哪個編號做參數(shù)了。

<img src="http://img03.taobaocdn.com/imgextra/i3/21288305/T23BjrXfJaXXXXXXXX_!!21288305.jpg"/>

物理左排針腳說明

Pin Raspberry Pi Broadcom names
1 3.3V 3.3V
3 SDA0 I2C0 SDA
5 SCL0 I2C0 SCL
7 GPIO 7 GPIO 4
9 DNC DNC
11 GPIO 0 GPIO 17
13 GPIO 2 GPIO 21 (rev2) / GPIO 27 (rev1)
15 GPIO 3 GPIO 22
17 DNC DNC
19 SPI MOSI SPI MOSI
21 SPI MOSO SPI MOSO
23 SPI SCLK SPI SCLK
25 DNC DNC

物理左排針腳說明

Pin Raspberry Pi Broadcom names
2 5V 5V
4 DNC DNC
6 GND GND
8 TX UART TxD
10 RX UART RxD
12 GPIO 1 GPIO 18
14 DNC DNC
16 GPIO 4 GPIO 23
18 GPIO 5 GPIO 24
20 DNC DNC
22 GPIO 6 GPIO 25
24 SP10 CEO N SP10 CEO N
26 SP10 CE1 N SP10 CE1 N

Notes:

  • all the UART, SPI and I2C pins can be reconfigured as GPIO if needed.

參考

  1. http://elinux.org/RPi_Low-level_peripherals
  2. https://projects.drogon.net/raspberry-pi/wiringpi/pins/
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容