[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


相关文章
|
传感器 数据采集 存储
STM32--GPIO
STM32--GPIO
|
存储
STM32--ADC模数转换
STM32--ADC模数转换
|
4月前
|
芯片
|
10月前
STM32F103C8 TIM输出比较与PWM
STM32F103C8 TIM输出比较与PWM
65 0
|
9月前
|
传感器 人工智能 Linux
Jetson TX2 NX的GPIO引脚使用方式
Jetson TX2 NX的GPIO引脚使用方式
|
10月前
|
存储
STM32F103C8 GPIO
STM32F103C8 GPIO
108 0
|
12月前
STM32的GPIO输入与输出
STM32的GPIO输入与输出
66 0
|
数据采集 内存技术
【Renesas RA6M4开发板之按键和LED的GPIO】
【Renesas RA6M4开发板之按键和LED的GPIO】
110 0
|
编译器 C语言
STM32学习笔记(1) GPIO初始化及点亮LED
在这一段代码中,假设同时有A.h和B.h同时包含了这个头文件,在编译器编译A时,会先判断LED.H有没有被定义(这里肯定是未被定义的),那么就定义(define __LED_H),然后再(endif),在编译器编译B时,同样会判断LED.H有没有被定义(这里经过A的编译,肯定是被定义的),那么就直接(endif)。这样,就可以防止重复编译。
171 0
STM32F4---PWM输出
脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制。 PWM是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。
STM32F4---PWM输出