幾種操作樹莓派2B GPIO的方法附參考程式碼
阿新 • • 發佈:2019-01-29
硬體:樹莓派2B
系統:Raspbian Debian Wheezy 2014-02-16
環境:wiringPi、BCM2835 C Library、Python2.7、C
注意:以下操作均在root許可權下操作
這裡總結下操作GPIO的幾種方法,希望給新手做個參考,首先準備系統環境,安裝系統什麼的這裡就略過了,Python,C系統自帶,wiringPi、BCM2835 C Library安裝這裡不在贅述,我之前帖子也提到過:http://www.shumeipai.net/thread-22413-1-1.html,大家自己去檢視,這裡列下安裝程式碼,省得你懶得看之前的帖子:
1.安裝wiringPi:
Physical那一列對應的就是樹莓派物理引腳的編號,BCM就是BCM2835的定義,wPi那列就是wiringPi的定義,所以用那個程式去讀取要注意他們對引腳的定義,否則會造成錯誤。新手可能要問你,那麼樹莓派上那個是1哪個是2啊, 給大家一張圖,紅色方框標註的就是1,和上圖方向是對應的,其它的自己對應
Physical列來看:
3.一下以物理引腳11為例子,來演示下幾種不同的操作方法,簡單設定引腳的IN或者OUT
3.1.使用Python來操作:
3.2.使用C來操作:
首先我們用wiringPi來控制把11腳變回OUT:
我們再用BCM來控制把11腳變回IN:
到這裡,幾種控制GPIO的方法就演示完畢,相信這時你再去弄什麼控制LED,感測器之類的不會再一頭霧水了,上述例子有不足錯誤之處,歡迎指點討論!
系統:Raspbian Debian Wheezy 2014-02-16
環境:wiringPi、BCM2835 C Library、Python2.7、C
注意:以下操作均在root許可權下操作
這裡總結下操作GPIO的幾種方法,希望給新手做個參考,首先準備系統環境,安裝系統什麼的這裡就略過了,Python,C系統自帶,wiringPi、BCM2835 C Library安裝這裡不在贅述,我之前帖子也提到過:http://www.shumeipai.net/thread-22413-1-1.html,大家自己去檢視,這裡列下安裝程式碼,省得你懶得看之前的帖子:
1.安裝wiringPi:
-
git clone git://git.drogon.net/wiringPi
-
cd wiringPi
- ./build
-
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.42.tar.gz
-
tar xvzf bcm2835-1.42.tar.gz
-
cd bcm2835-1.42
-
./configure
-
make
-
make check
- make install
- gpio readall
Physical那一列對應的就是樹莓派物理引腳的編號,BCM就是BCM2835的定義,wPi那列就是wiringPi的定義,所以用那個程式去讀取要注意他們對引腳的定義,否則會造成錯誤。新手可能要問你,那麼樹莓派上那個是1哪個是2啊,
3.一下以物理引腳11為例子,來演示下幾種不同的操作方法,簡單設定引腳的IN或者OUT
3.1.使用Python來操作:
-
import RPi.GPIO as GPIO
-
GPIO.setmode(GPIO.BCM)
- GPIO.setup(17, GPIO.IN)
3.2.使用C來操作:
首先我們用wiringPi來控制把11腳變回OUT:
-
#include <wiringPi.h>
-
#include <stdio.h>
-
int main(void){
-
wiringPiSetup();
-
pinMode(0,OUTPUT);
-
return 1;
- }
我們再用BCM來控制把11腳變回IN:
-
#include <bcm2835.h>
-
#include <stdio.h>
-
int main(void){
-
bcm2835_init();
-
uint8_t pin;
-
pin = 17;
-
bcm2835_gpio_fsel(pin, BCM2835_GPIO_FSEL_INPT);
-
bcm2835_close();
-
printf("... done!\n");
-
return 1;
- }
到這裡,幾種控制GPIO的方法就演示完畢,相信這時你再去弄什麼控制LED,感測器之類的不會再一頭霧水了,上述例子有不足錯誤之處,歡迎指點討論!