树莓派gpio编程c语言,树莓派底层编程-GPIO篇

0 前言本来是准备写一篇用python控制GPIO的例子,结果发现太简单了,还是深入一些吧,多深入底层接下来,我会按照下面的顺序来介绍:1)GPIO控制器地址映射2)GPIO主要控制寄存器介绍3)GPIO操作流程4)用C语言控制GPIO6)用python来控制GPIO1 概述树莓派2B采用的CPU为BCM2836,外设部分和BCM2835完全一致,所以就可以参考BCM2835的寄存器手...
摘要由CSDN通过智能技术生成

0 前言

本来是准备写一篇用python控制GPIO的例子,结果发现太简单了,还是深入一些吧,多深入底层

接下来,我会按照下面的顺序来介绍:

1)GPIO控制器地址映射

2)GPIO主要控制寄存器介绍

3)GPIO操作流程

4)用C语言控制GPIO

6)用python来控制GPIO

1 概述

树莓派2B采用的CPU为BCM2836,外设部分和BCM2835完全一致,所以就可以参考BCM2835的寄存器手册

但是,这个寄存器手册笔误有点多,建议配合着wiki的勘误手册来看

CPU总共有54个IO,每个IO都可以复用,配置输入或者输出模式,单从GPIO部分来看,比较简单,无非是输入/输出,触法模式等,和一般的MCU没有太大差异

2 地址映射

BCM2835将BUS的地址空间,通过MMU映射到线性寻址空间,如下所示

d4634235f3c3058a4cad3686240ad89f.png

这里,我们从左到右看,IO Peripherals的基地址为0x7E000000,然后映射后的基地址为0x20000000

也就是说外设的地址空间为0x20000000~0x20FFFFFF

接下来,在手册中,找到GPIO章节,查看寄存器地址,

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值