zoukankan      html  css  js  c++  java
  • 【ARM】ARM体系结构-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通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻。

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

  • 相关阅读:
    Hibernate(十三)迫切内连接fetch
    SQL多表联合查询(交叉连接,内连接,外连接)
    Hibernate入门(十二)离线条件检索
    Java基础IO流(二)字节流小案例
    Java基础IO流(一)
    Hibernate入门(十一)多对多案例
    mysql下载安装及常见问题
    数据库表数据恢复
    linux的自有(内置)服务
    linux下的别名机制
  • 原文地址:https://www.cnblogs.com/lcw/p/3159424.html
Copyright © 2011-2022 走看看