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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

micro虾米

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值