樹莓派 使用C對GPIO編程


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共享庫

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM