关于GPIO

本文主要探讨GPIO硬件,包括GPFCON、GPFDAT和GPFUP寄存器的详细讲解,重点在于GPFCON和GPFDAT。此外,还涉及了硬件结构和部分汇编代码的应用。
摘要由CSDN通过智能技术生成

参考自韦东山《嵌入式linux应用开发》第五章

1.关于GPIO硬件

根据笔者在单片机上付出的带价。所谓的ARM9实际上是把51单片机各种直接用代码操作的方式封装在一起。用户可以通过ARM上的寄存器操作实现响应硬件操作,这是对开发者透明的。51单片机基本要代码一行一行实现操作,印象中的I2C协议就是如此。晚点回忆单片机再写好了,这里不影响理解。

GPIO,就是通用IO端口,说白就是个端口。一个端口有什么用啊!?说白了就是输出和读取作用了,既然计算机是二进制的,那肯定就是两个状态了。高电平/低电平(卧槽,数字电路!噩梦啊)。所以GPIO在硬件上就是做这四件事情的,(输出/输入)X(高/低电平)。

那么想想应该要几个寄存器操作他们啊。显然本来输入输出可以用不同端口,然而万恶资本主义家们为了节省成本,压榨设计人员剩余价值。当然要一个端口同时做这四种事情了。(我吹的)

那一个端口起码要有两个寄存器来控制了,一个控制输出还是输入,一个控制高低电平。当然输入是不需要控制高低电平的。但当然还是可以读寄存器的数据来查看高低电平的。有点语无伦次直接看别人怎么搞的吧。

先看GPF组端口。(实际上是从GPA组端口一路排下来的。作用大同小异,有1输入和2输出,还有一个是3自己独特用法,还有一个4保留。具体一个组的一个端口是由两位BIT控制,00、01、10、11.就是代表上面四个用法)


1.1GPFCON、GPFDAT、GPFUP

1.11GPFUP(不是重点)

这里居然多出了一个寄存器,GPFUP。查了一下,实际上用于引脚上拉电阻。什么叫上拉电阻,说白了就是确定一个高阻态的东西保持恒定电压。(什么是高阻态?应该就是你拿一根导线接入空中,然后你不能像炮姐一样发出电磁炮,导致端口另一端是个诡异的状态。我瞎掰的。操作GPFUP寄存器为0时候就相当于在下图B点接个高电压。)

为什么要保持一个恒定电压。撇开B点,比如下面A点在端口用于读取时候究竟是高电平还是低电平。因为A点另一端接的相当于是空气,所以高阻,高阻不能确定电平。但是B点如果是高电平,明显,开关闭合就是低电平,开关打开就是高电平。

一般而言这东西是不用管的,因为默认就是0,就是接上拉电阻的意思。至少这里不涉及,后面我也没用过不接上啦电阻的状态。计算机是二进制的,高阻态的意义应该就是告诉我们,在高阻态基础上加上拉电阻可以消除不确定因素,就是高低电平的意思。

1.12GPFCON

可以把最开头那个表格拿来看,那是叫做芯片手册的东西。
GPFCON就是用于用来设定端口是输入还是输出的,至于为什么能实现,这个在开发上透明,不用管。
有没有发现,CPFCON可以设置为EINT,中断的意思,以后说。
CON就是Configure配置的意思了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值