1 樹莓派GPIO控制有以下三種方式:
1.1 wiringPi
wiringPi適合那些具有C語言基礎,在接觸樹莓派之前已經接觸過單片機或者嵌入式開發的人群。wiringPi的API函數和arduino非常相似,這也使得它廣受歡迎。
作者給出了大量的說明和示例代碼,這些示例代碼也包括UART設備,I2C設備和SPI設備等,毫無疑問地說wiringPi功能非常強大。
1.2 BCM2835 C Library
BCM2835 C Library可以理解為使用C語言實現的相關底層驅動,它給我的感覺更像STM32的庫函數,BCM2835 C Library的驅動庫包括GPIO、SPI和UART等,
可以通過學習BCM2835 C Library熟悉BCM2835相關的寄存器操作。如果有機會開發樹莓派上的linux驅動,或自主開發python或PHP擴展驅動,可以從BCM2835 C Library找到不少的“靈感”。
注: 不確定樹莓派硬件型號可以,通過下列方式查看
2 BCM2835 C Library使用
2.1 安裝
先看看最新版本:http://www.airspayce.com/mikem/bcm2835
1 下載
$ wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.56.tar.g
2 解壓
$ tar xvzf bcm2835-1.56.tar.gz
3 執行./configure
pi@raspberrypi:~/bcm2835-1.56 $ ./configure
4 make
pi@raspberrypi:~/bcm2835-1.56 $ make
5 make check
pi@raspberrypi:~/bcm2835-1.56 $ sudo make check
6 安裝庫
pi@raspberrypi:~/bcm2835-1.56 $ sudo make install
2.1 樣例
1 確定PIN, 比如控制GPIO.7
#define RST_PIN RPI_GPIO_P1_07
bcm2835_init();
bcm2835_gpio_fsel(RST_PIN, BCM2835_GPIO_FSEL_OUTP);
bcm2835_gpio_set(RST_PIN);
bcm2835_delay(100);
bcm2835_gpio_clr(RST_PIN);
bcm2835_delay(100);
bcm2835_close();
2 編譯,-l bcm2835表示動態加載bcm2835共享庫