[mystery]-gpio

简介:

GPIO

  Gerneral-Purpose IO ports,即通用IO口。

  在嵌入式系统中常常有数量众多,但是却比较简单的外部设备/电路。

  对这些设备/电路,有的需要CPU为之提供控制手段,有的则需要被CPU用做输入信号。

  许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如控制某个LED灯亮与灭;或者通过获取某个管脚的电平属性来达到判断外围设备的状态。

  对这些设备/电路的控制,使用传统的串行口或并行口都不合适,所以在微控制器芯片上一般都会提供一个“通用可编程IO接口”,即GPIO。

  接口至少有两个寄存器,即“通用IO控制寄存器”与“通用IO数据寄存器”。

  数据寄存器的各位都直接引致芯片外部,而对这种寄存器中每一位的作用,即每一位的信号流通方向,则可以通过控制寄存器中对应位独立地加以设置,比如可以设置某个管脚的属性为输入、输出或其它特殊功能。

 


注意

 

  在实际的MCU中,GPIO是有多种形式的。比如,有的数据寄存器可以按照位寻址,有些却不能按照位寻址,这在编程时就要加以区分。

  为了使用方便,很多MCU的GPIO接口除去两个标准寄存器必须具备外,还提供上拉寄存器,可以设置IO的输出模式是高阻,还是带上拉的电平输出,或者不带上拉的电平输出。这使得在电路设计中,外围电路就可以简化不少。

 


 

为什么要使用上拉电阻

一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。

数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!

一般说的是I/O端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,I/O端口的输出类似于一个三极管的C,当C接通过一个电阻和电源连接在一起的时候,该电阻成为上拉电阻,也就是说,该端口正常时为高电平;C通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻。

上拉电阻是用来解决总线驱动能力不足时提供电流的问题的。一般说法是上拉增大电流,下拉电阻是用来吸收电流。

 

 

 

 本文转自infohacker 51CTO博客,原文链接:http://blog.51cto.com/liucw/1190584


相关文章
|
5月前
|
Linux
gpio_direction_output 和 gpio_set_value之间的关系
gpio_direction_output 和 gpio_set_value之间的关系
619 0
|
7月前
|
传感器 数据采集 存储
STM32--GPIO
STM32--GPIO
|
Java 调度 C++
VirtualThread Pin的处理总结
VirtualThread Pin的处理总结
78 0
|
传感器 人工智能 Linux
Jetson TX2 NX的GPIO引脚使用方式
Jetson TX2 NX的GPIO引脚使用方式
STM32的GPIO输入与输出
STM32的GPIO输入与输出
89 0
|
数据采集 内存技术
【Renesas RA6M4开发板之按键和LED的GPIO】
【Renesas RA6M4开发板之按键和LED的GPIO】
141 0
|
编译器 C语言
STM32学习笔记(1) GPIO初始化及点亮LED
在这一段代码中,假设同时有A.h和B.h同时包含了这个头文件,在编译器编译A时,会先判断LED.H有没有被定义(这里肯定是未被定义的),那么就定义(define __LED_H),然后再(endif),在编译器编译B时,同样会判断LED.H有没有被定义(这里经过A的编译,肯定是被定义的),那么就直接(endif)。这样,就可以防止重复编译。
367 0
|
物联网 芯片 开发者
Cc2530 GPIO 配置 | 学习笔记
快速学习 Cc2530 GPIO 配置
Cc2530 GPIO 配置 | 学习笔记
|
安全 Shell
[PWN][高级篇]利用ROP-ret2Syscall突破NX保护(上)
[PWN][高级篇]利用ROP-ret2Syscall突破NX保护
216 0
[PWN][高级篇]利用ROP-ret2Syscall突破NX保护(上)
|
NoSQL Shell
[PWN][高级篇]利用ROP-ret2Syscall突破NX保护(下)
[PWN][高级篇]利用ROP-ret2Syscall突破NX保护
136 0
[PWN][高级篇]利用ROP-ret2Syscall突破NX保护(下)