RaspberryPi2B使用bcm2835c庫控制GPIO


RaspberryPi2B使用bcm2835c庫控制GPIO

網上有很多RaspberryPi控制GPIO的方法,有Python、WiringPi、bcm2835 C library

使用bcm2835 C庫控制GPIO時,發現不管怎么設置,GPIO都沒有反應,沒有輸出控制的值。

查資料發現:
bcm2835的C庫是bcm2835芯片專用的庫,在RaspberryPI上使用沒有問題,而RaspberryPi2B使用的是bcm2836芯片,雖說bcm2836和bcm2835芯片基本上一模一樣,可以拿bcm2835芯片的數據手冊,對應bcm2836芯片使用,但是畢竟兩個芯片還是有差別的,在這里只針對GPIO的區別簡單介紹:

在bcm2835庫src/bcm2835.h中GPIO的基地址為:0x20000000

#define BCM2835_PERI_BASE               0x20000000

需要改成bcm2836上對應的虛擬地址基地址:0x3F000000

#define BCM2835_PERI_BASE               0x3F000000  

是因為虛擬地址和物理地址對應關系不統一造成控制GPIO無反應。
通過以上修改后,在RaspberryPi2B上重新配置並編譯安裝bcm2835庫后,就可以正常通過調用bcm2835庫控制GPIO。


免責聲明!

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



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