zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    站立会议01---个人总结
    团队项目的NABCD
    查找水王
    《构建之法》读书笔记03
    《构建之法》读书笔记02
    《构建之法》读书笔记01
    Java web应用开发技术
    Java 模拟ATM(修正)
    Java 多态
    Java 接口与继承 道至简第六章发表阅读笔记
  • 原文地址:https://www.cnblogs.com/microxiami/p/7988903.html
Copyright © 2011-2022 走看看