STM32引脚及GPIO的概念

一、 引脚输入输出
在单片机(microcontroller)中,引脚(pin)是指连接到外部电路的可编程接口。每个引脚可以被配置为输入或输出。输入引脚用于接收外部信号或数据,而输出引脚用于发送信号或数据给外部设备。

  1. 引脚被配置为输入:
    它可以读取外部电路中的信号。这意味着它可以接收来自传感器、开关或其他外部设备的电压信号,并将其传输到单片机的内部。单片机可以通过读取输入引脚上的电平(高电平或低电平)来确定外部信号的状态。
  2. 引脚被配置为输出:
    它可以向外部电路发送信号。单片机可以通过控制输出引脚上的电平来驱动外部设备,如LED、继电器、马达等。通过改变输出引脚上的电平,单片机可以向外部设备发送高电平或低电平信号,以触发相应的操作。
  3. 引脚的输入输出配置通常在单片机的软件程序中进行设置:
    通过编程,开发人员可以指定每个引脚的功能,包括输入输出方向、电平状态以及其他特定的功能(如模拟输入、中断等),以适应特定的应用需求。

二、模拟输入输出
模拟输入输出(Analog Input/Output)指与模拟电信号进行交互的过程。模拟信号是连续变化的信号,可以取无限多个可能的值,例如声音、光线强度和温度等。与之相对的是数字信号,它是离散的信号,只能取有限个离散值。

  1. 模拟输入:
    是指将模拟信号输入到单片机或其他数字系统中进行处理。单片机通常配备了模拟输入引脚,可以接收来自传感器、电压源、放大器等的模拟信号。单片机将模拟输入信号转换为数字信号,通过内部的模数转换器(ADC)将连续变化的模拟电压转换为离散的数字数据,以便在程序中进行处理。

  2. 模拟输出:
    是指将数字信号转换为模拟信号,并输出到外部电路中。单片机通常配备了模拟输出引脚,可以通过内部的数模转换器(DAC)将数字数据转换为模拟电压或模拟电流信号。这些信号可以用于控制电压源、电机驱动器、音频放大器等外部设备。

  3. 模拟输入输出有许多应用:
    特别是需要与现实世界中的模拟环境进行交互的场景。通过使用模拟输入输出功能,单片机可以接收和处理传感器数据、控制电子设备,并实现对模拟信号的采集、处理和控制。

三、GPIO通用输入输出IO接口

通用输入输出(General Purpose Input/Output),它是指用于连接外部设备或电路的可编程引脚接口。GPIO引脚可以通过软件配置为输入或输出模式,并且可以通过控制电平状态来进行数据传输或与外部设备进行交互。

通常,单片机或微控制器具有一组GPIO引脚,这些引脚可以用于连接各种外部设备,如传感器、显示器、开关、LED等。通过编程,开发人员可以控制每个GPIO引脚的功能和状态,以满足特定应用的需求。

在输入模式下,GPIO引脚可以接收来自外部设备的信号。开发人员可以读取引脚上的电平状态,以获取来自传感器、按钮或其他外部设备的输入信息。

在输出模式下,GPIO引脚可以向外部设备发送信号。开发人员可以控制引脚上的电平状态,以触发LED的亮灭、驱动电机、控制继电器等操作。

GPIO的灵活性使得它在嵌入式系统和电子设备中非常常见。通过使用GPIO,单片机可以与外部设备进行双向通信,实现数据采集、控制和交互,从而扩展了其功能和应用范围。

示例:在STM32微控制器上
(1)GPIO引脚的输出模式可以设置为以下四种模式:
a.推挽输出模式(Push-Pull):在推挽输出模式下,GPIO引脚可以提供高电平(VDD)和低电平(GND)两种输出状态,当输出为高电平时,引脚与VDD连接,并提供VDD电压。当输出为低电平时,引脚与GND连接,并提供GND电压。

b.开漏输出模式(Open-Drain):在开漏输出模式下,GPIO引脚只提供低电平输出状态,而不提供高电平输出状态。当输出为低电平时,引脚与GND连接,并提供GND电压。当输出为高电平时,引脚处于高阻态(不连接任何电源),需要外部上拉电阻将引脚拉高至所需电平。开漏输出模式常用于与外部器件连接,如I2C总线或多路器件共享总线的情况。

c.推挽复用输出模式(Push-Pull Alternate Function):在推挽复用输出模式下,GPIO引脚被配置为特定功能(如UART、SPI、PWM等)的输出引脚。引脚既可以提供高电平输出状态,也可以提供低电平输出状态。在此模式下,GPIO引脚同时具有GPIO功能和特定功能的输出功能。

d.开漏复用输出模式(Open-Drain Alternate Function):在开漏复用输出模式下,GPIO引脚被配置为特定功能(如I2C)的输出引脚。引脚只提供低电平输出状态,而高电平输出状态需要外部上拉电阻。在此模式下,GPIO引脚同时具有GPIO功能和特定功能的输出功能。

(2)GPIO引脚的输入模式可以设置为以下四种模式:
a.浮空输入模式(Floating Input):在浮空输入模式下,GPIO引脚没有内部上拉或下拉电阻,因此引脚处于高阻态。这种模式适用于需要外部电路或器件来提供输入信号的情况,例如传感器输出信号的连接。

b.上拉输入模式(Pull-up Input):在上拉输入模式下,GPIO引脚使用内部上拉电阻。当外部信号未连接到引脚时,引脚会被拉高至高电平(VDD)。当外部信号连接到引脚并拉低引脚电平时,引脚电平变为低电平。这种模式适用于需要检测开关状态或按钮按下等应用。

c.下拉输入模式(Pull-down Input):在下拉输入模式下,GPIO引脚使用内部下拉电阻。当外部信号未连接到引脚时,引脚会被拉低至低电平(GND)。当外部信号连接到引脚并拉高引脚电平时,引脚电平变为高电平。这种模式也适用于需要检测开关状态或按钮按下等应用。

d.模拟输入模式::你可以使用STM32的模数转换器(ADC)外设来实现。模数转换器(ADC)允许将模拟信号转换为数字值,以供微控制器进行处理。通过配置ADC外设和相关的GPIO引脚,你可以将模拟信号连接到相应的引脚,并使用ADC进行转换。

图解STM32 GPIO及GPIO各种模式下的Hal库代码由下一篇文章介绍 链接: [link](假装有文章链接)

你可能感兴趣的:(STM32嵌入式系统,stm32,嵌入式硬件,单片机)