首页 > 其他分享 >GPIO的输入与输出

GPIO的输入与输出

时间:2024-01-15 16:34:48浏览次数:31  
标签:输出 引脚 MOS 寄存器 GPIO 输入

一.GPIO简介

二. GPIO基本结构

寄存器是特殊的存储器,内核可用通过APB2总线对寄存器进行读写,寄存器每一位对应一个引脚。输出寄存器写1,对应引脚输出高电平;输入寄存器写1,则证明对应端口为高电平。其中寄存器只负责存储数据,驱动器用来驱动。

三. GPIO位结构

左边三个为寄存器,中间为驱动器,右侧为引脚
上面为输入部分,下面为输出部分

输入部分:

引脚处的两个保护二极管是用来对输入电压进行限幅的。
上面VDD为3.3V,下面接VSS为0V。
若电压高于VDD,电流流入VDD,电压低于VSS,从VSS汲取电流

分别接了上拉电阻和下拉电阻。
下面导通上面断开,就是下拉输出模式,是默认的低电平输入模式。
(https://www.bilibili.com/video/BV1ZU4y1Q7eo)
上面导通下面断开,就是上拉输出模式,是默认的高电平输入模式。
(https://www.bilibili.com/video/BV1W34y1579U)
两个都断开,就是浮空输入模式,此时引脚的输入电平容易受外界影响。

对输入电压进行调整。
输入电压高于某一阈值,则输出电压为高电平;
       低于某一阈值,则输出电压为低电平。
只有信号高于上限或低于下限,输出才会发生变化

MOS相当于电子开关,通过信号来控制MOS的开和关,来控制引脚接到VDD还是VSS

推挽输出模式:
数据寄存器为1时,P-MOS关,N-MOS开,VDD供压,输出高电平。
数据寄存器为0时,P-MOS开,N-MOS关,VSS供压,输出低电平。
此时STM32对IO口有绝对控制权。

开漏输出模式:
P-MOS此时无效。
数据寄存器为1时,N-MOS断开,即输出断开
数据寄存器为0时,N-MOS导通,即输出低电平
可作为通信协议的驱动方式。
也可断开,在输出时外加上拉电阻来提高输出电压。

关闭模式:
引脚配置为输入时该系统关闭,引脚电平由外部信号控制

四.GPIO的八种工作模式

模拟输入:GPIO无效,引脚信号直接输入ADC(片上外设)。
复用开漏/推挽输出:寄存器和输出驱动器断开,由片上外设控制输出驱动器

标签:输出,引脚,MOS,寄存器,GPIO,输入
From: https://www.cnblogs.com/acloudyskye/p/17965658

相关文章

  • python logging 禁止日志输出
    1只会禁用特定日志记录器,其他日志记录器仍可以将消息输出到控制台格式:logging.getLogger("某日志记录器").disabled=True例:logging.getLogger("tornado").disabled=True2阻止这些日志记录器将日志消息传播到更高级别的父级记录器,从而不会显示在控制台上;请注意,其他日志......
  • 吴师兄学算法day07 167. 两数之和 II - 输入有序数组
    题目:167. 两数之和II-输入有序数组易错点:下标为1开始我的代码:classSolution:deftwoSum(self,numbers:List[int],target:int)->List[int]:right=len(numbers)-1left=0whileleft<right:ans=numbers[left]......
  • (△△△)开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动
    描述开发一个坐标计算工具,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S)+数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10;......
  • 无涯教程-LISP - 输入&输出
    常见的LISP提供许多输入输出函数,我们已经使用了格式化函数和打印函数进行输出,在本节中,我们将研究LISP中提供的一些最常用的输入输出函数。Read函数下表提供了LISP最常用的输入函数-Sr.No.Function&描述1read&optionalinput-streameof-error-peof-valuerecursive-p......
  • logging 写入日志的同时在终端输出
    系统信息:OS:Ubuntu22.04.1PythonVersion:3.11.6 Codeimportlogging#配置日志logging.basicConfig(level=logging.DEBUG,format='%(asctime)s-%(levelname)s-%(message)s',filename='example.log')......
  • 04_GPIO输入
    GPIO输入按键介绍传感器模块介绍硬件电路C语言数据类型按键控制LED接线图代码LED.c#include"stm32f10x.h"//DeviceheadervoidLED_Init(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitTypeDefGPIO_InitStruct;......
  • 03_GPIO输出
    GPIO输出简介GPIO基本结构GPIO位结构GPIO模式四种输入模式GPIO_Mode_IN_FLOATING浮空输入模式GPIO_Mode_IPU上拉输入模式GPIO_Mode_IPD下拉输入模式GPIO_Mode_AIN模拟输入模式四种输出模式GPIO_Mode_Out_OD开漏输出模式GPIO_Mode_Out_PP推挽输出模式G......
  • Splunk 输出计算和转换 eval命令
    Splunkeval命令用于对搜索结果进行计算和转换,以生成新的字段或修改现有字段的值。eval命令在Splunk搜索语言中非常常用,可以进行各种数学运算、字符串操作、条件判断等。eval命令的基本语法如下: ...|eval<新字段名>=<表达式>其中,<新字段名>是你想要生成的新字段的名称,<表......
  • plt输出的图分辨力太低怎么办
    如果使用的是Python中的Matplotlib库来绘制图形,而输出的图像分辨率较低,可以考虑以下几种方法来提高图像的分辨率:调整图像尺寸和分辨率:在调用plt.figure()创建图形对象时,可以通过设置figsize参数来调整图像的大小,通过设置dpi参数来调整图像的分辨率。例如:importmatplotlib.pyplot......
  • Linux Shell接收键盘输入
    1.read命令格式read[选项][变量名]选项:-p“提示信息”:在等待read输入时,输出提示信息-t“秒数”:read命令会一致等待用户输入,使用此选项可以指定等待时间-n“字符数”:read命令只接受指定的字符数,就会执行-s:隐藏输入的数据,适用于机密信息的......