本文主要是介绍第三阶段:49.树莓派博通BCM2835芯片手册导读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基于简单字符设备驱动框架编写驱动代码驱动引脚
1.General Purpose I/O (GPIO)板块
查看芯片手册的目的性很强:做哪一块的开发,就只看那一块,现在要开发的是GPIO,熟悉控制IO口的寄存器最为重要。
如果看完这部分的文档,你对于以下几个问题(后面有解析)有清晰的答案,说明你真正读懂了这一部分的开发。
①操作逻辑:简言之就是怎么进行配置相关寄存器,这些配置步骤和思想其实都很类似。
②需要重点掌握的寄存器有哪些?例如输入 / 输出控制寄存器,输出 0 / 1控制寄存器,清除状态寄存器
芯片手册第六章:
寄存器名字 GPFSEL0 GPIO Function Select 0 功能选择 输出/输入
(GPIO Function Select Registers) 32位
14-12 001 = GPIO Pin4 is an output
GPSET1 GPIO Pin Output Set 0 输出1
0 = No effect
1 = Set GPIO pin n
GPCLR0 GPIO Pin Output Clear 0 清0
0 = No effect
1 = Clear GPIO pin n
2.Register View 导读
在新的平台也要学会捕捉类似的关键信息:选择输入还是输出,0/1,怎么清除,上升沿下降沿等。(配置过32 / 51寄存器的应该对这些很熟悉)
从下图中可以大概了解到所有的IO口被分成了0~5组。
有意思的是,下图最第一列的地址Address是树莓派总线地址,一般芯片手册给的都是真正的物理地址。第二列是寄存器的名字,第三列寄存器功能描述。
一共有41个寄存器,每个寄存器都是32位。
描述部分也很重要,大多涉及使用方法
3.配置引脚功能为输入/输出的寄存器
这20~29的IO口(第二列)属于分组2
IO编号要看好
4.配置引脚输出0/1的寄存器
5.配置引脚清除0/1状态的寄存器
整理关键内容
通过文档阅读,可以整理出关键的信息:
有3个最基本的要清楚:
①选择IO是 输入 / 输出控制寄存器:GPFSEL
②输出0 / 1寄存器:GPSET
③清除寄存器:GPCLR
操作逻辑:
以GPFSEL0寄存器举例,引脚pin4对应的分组就是第0组(51单片机引脚也是分成第0组、第1组、第2组、第3组)。只要在这个分组下,把14-12位设置为001,就能配置pin4引脚为输出。
这篇关于第三阶段:49.树莓派博通BCM2835芯片手册导读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!