GPIO
GPIO是用于与外界交换数据的通用输入输出接口
输入模式
在STM32微控制器中,GPIO(通用输入/输出)引脚可以配置为多种不同的模式,其中包括输入模式。输入模式是用于从外部读取信号的一种模式,它可以分为四种不同的配置,包括浮空输入、上拉输入、下拉输入和模拟输入。下面是对每种输入模式的简要讲解:
-
浮空输入(Floating Input):
- 在这种模式下,GPIO引脚没有外部上拉或下拉电阻连接,因此处于高阻抗状态。这意味着引脚可以被外部信号拉高或拉低,但它不会保持固定的电平状态。
- 当需要读取一个不确定电平的信号时,可以选择这种模式。
-
上拉输入(Pull-up Input):
- 在这种模式下,引脚上有一个内部上拉电阻连接,使得引脚在没有外部信号驱动时会被拉高到逻辑高电平。
- 当外部设备断开连接时,引脚会自动被拉高到逻辑高电平。
- 适合于需要外部设备以开漏输出方式工作的场合。
-
下拉输入(Pull-down Input):
- 在这种模式下,引脚上有一个内部下拉电阻连接,使得引脚在没有外部信号驱动时会被拉低到逻辑低电平。
- 当外部设备断开连接时,引脚会自动被拉低到逻辑低电平。
- 适合于需要外部设备以开漏输出方式工作的场合。
-
模拟输入(Analog Input):
- 在这种模式下,GPIO引脚被配置为模拟输入,可以接收来自模拟传感器或其他模拟信号的输入。
- 这种模式下,不执行数字输入/输出,而是将模拟信号转换为数字值进行处理。
- 适用于需要处理模拟信号的应用场景,如模拟传感器输入等。
在STM32的库函数中,通常使用GPIO_Init()函数来配置GPIO引脚的输入模式,通过设置相应的参数来选择所需的模式。例如,使用GPIO_PuPd_UP参数配置引脚为上拉输入模式,使用GPIO_PuPd_DOWN参数配置引脚为下拉输入模式,而使用GPIO_PuPd_NOPULL参数配置引脚为浮空输入模式。
输出模式
对于STM32的GPIO模块,输出模式允许你将GPIO引脚配置为输出,并向外部设备发送电平信号。输出模式通常用于控制外部设备,例如LED、马达、继电器等。在STM32微控制器中,输出模式可以进一步分为四种不同的配置:
-
推挽输出模式(Push-Pull Output):
- 在这种模式下,GPIO引脚可以输出逻辑高电平或逻辑低电平,并且可以提供一定的输出电流。在逻辑高电平时,GPIO引脚与VDD(供电电压)连接,而在逻辑低电平时,GPIO引脚与地(GND)连接。
- 推挽输出模式允许GPIO引脚既能够输出高电平,又能够输出低电平,适用于大多数普通的输出控制应用。
-
开漏输出模式(Open-Drain Output):
- 在这种模式下,GPIO引脚只能输出逻辑低电平,而在逻辑高电平时,引脚处于高阻抗状态(即断开状态)。
- 开漏输出模式通常用于需要实现多个输出引脚共享同一信号线的情况,例如I2C总线通信中的SCL和SDA线。
-
复用推挽输出模式(Alternate Function Push-Pull Output):
- 在这种模式下,GPIO引脚被配置为某种特殊功能(例如USART、SPI、PWM等),可以输出逻辑高电平或逻辑低电平,并且提供一定的输出电流。
- 这种模式允许GPIO引脚实现除了基本的输入输出功能之外的其他特殊功能,提供了更大的灵活性。
-
复用开漏输出模式(Alternate Function Open-Drain Output):
- 在这种模式下,GPIO引脚被配置为某种特殊功能,只能输出逻辑低电平,而在逻辑高电平时,引脚处于高阻抗状态。
- 类似于复用推挽输出模式,但是在输出逻辑高电平时引脚处于高阻抗状态。
在STM32的库函数中,可以使用GPIO_Init()函数来配置GPIO引脚的输出模式,通过设置相应的参数来选择所需的模式。例如,使用GPIO_Mode_OUT参数配置引脚为推挽输出模式,使用GPIO_Mode_AF_PP参数配置引脚为复用推挽输出模式,而使用GPIO_Mode_AF_OD参数配置引脚为复用开漏输出模式。
注意
代码函数要分装好 所有函数卸载 main.c是不可取的
按钮输入要注意消除按键抖动