树莓派博通BCM2835芯片手册导读

树莓派寄存器介绍

驱动开发的两大利器就是开发手册和电路图,但是树莓派在开发手册中就已经将相应的寄存器已经写出来了,所以不需要看电路图,只看开发手册就可以进行开发。

进行IO口的驱动,所以在开发手册中找到对应的IO篇章,

 通过I/O口导读我们了解到:共有54条通用I/O(GPIO)线路分为两组。所有GPIO引脚都具有BCM内至少有两个可选功能。替代功能通常是外围IO,每个库中可能会出现一个外围设备,以便灵活选择IO。  

GPIO有41个寄存器,所有访问都是32位的。Description是寄存器的功能描述。

GPFSEL0(寄存器名)     GPIO Function Select 0(功能选择:输入或输出);

GPSET0  (寄存器名)     GPIO Pin Output Set 0(将IO口置0);

GPSET1 (寄存器名)      GPIO Pin Output Set 1(将IO口置1);

GPCLR0 (寄存器名)      GPIO Pin Output Clear 0 (清0)

有的芯片手册给的是物理地址,bcm2835给的是总线地址

FSELn表示GPIOn,下图给出第九个引脚的功能选择示例,对寄存器的29-27进行配置,进而设置相应的功能。根据图片下方的register 0表示0~9使用的是register 0这个寄存器。

例如:我们把引脚4配置位输出引脚
FSEL4 14-12 001 我们把4引脚的14-12配置成   001 GPIO Pin 4 is an output

输出集寄存器用于设置GPIO管脚。SET{n}字段定义,分别对GPIO引脚进行设置,将“0”写入字段没有作用。如果GPIO管脚为在输入(默认情况下)中使用,那么SET{n}字段中的值将被忽略。然而,如果引脚随后被定义为输出,那么位将被设置根据上次的设置/清除操作。分离集和明确功能取消对读-修改-写操作的需要。GPSETn寄存器为了使IO口设置为1,set4位设置第四个引脚,也就是寄存器的第四位。

输出清除寄存器用于清除GPIO管脚。CLR{n}字段定义要清除各自的GPIO引脚,向字段写入“0”没有作用。如果的在输入(默认),然后在CLR{n}字段的值是忽略了。然而,如果引脚随后被定义为输出,那么位将被定义为输出根据上次的设置/清除操作进行设置。分隔集与清函数消除了读-修改-写操作的需要。GPCLRn是清零功能寄存器。

 注意:我们配置的底层引脚对应的是BCM

 

具体的引脚也可通过官方手册查找

 GPIO 4 at Raspberry Pi GPIO Pinout 

  还可通过   pinout  查看树莓派型号和寄存器引脚

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

追着太阳跑1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值