(学习记录)使用 STM32CubeMX——GPIO引脚输入配置
STM32F103C8T6的GPIO引脚输入配置
时钟配置
(学习记录)使用 STM32CubeMX——配置时钟(入门)https://blog.csdn.net/Wang2869902214/article/details/142423522
GPIO 引脚输出配置
(学习记录)使用 STM32CubeMX——GPIO引脚输出配置https://blog.csdn.net/Wang2869902214/article/details/142436449
GPIO输入引脚选择
①:这里我们选择一个PB11作为我们本章节的输入引脚
这里引脚配置时,有些选项与上一章节有所不同:
这里我们选择:GPIO_Input
1. PB11(示例引脚,非PC13)
-
PB11:这是STM32F103C8T6微控制器上的一个GPIO(通用输入输出)引脚编号,表示端口B的第11脚。
2. Reset_State
-
Reset_State:默认状态(不使用)
3. ADC1_EXTI11, ADC1_EXTI12
-
ADC1_EXTI11, ADC1_EXTI12:ADC1和ADC2的通道11和通道12
4. I2C2_SDA
-
I2C2_SDA:表示该引脚被配置为I2C2总线的串行数据线(SDA)。I2C是一种多主机串行总线,用于连接低速外设。SDA线用于传输数据和地址。
5. TIM2_CH4
-
TIM2_CH4:表示该引脚被配置为定时器2的通道4输出。STM32的定时器可以用于生成PWM(脉冲宽度调制)信号、测量时间间隔等。
6. USART3_RX
-
USART3_RX:表示该引脚被配置为通用同步异步收发传输器(USART)3的接收(RX)引脚。USART是一种用于串行通信的协议,广泛用于微控制器与外部设备之间的数据交换。
7. GPIO_Input, GPIO_Output, GPIO_Analog
-
GPIO_Input:将引脚配置为输入模式,用于读取外部信号的状态。
-
GPIO_Output:将引脚配置为输出模式,用于控制外部设备或信号。
-
GPIO_Analog:将引脚配置为模拟输入模式,用于连接模拟信号源到ADC(模数转换器),进行模拟到数字的转换。
8. EVENTOUT
-
EVENTOUT:在某些STM32系列中,EVENTOUT功能允许用户将内部事件(如定时器更新事件、外部中断事件等)路由到指定的GPIO引脚。然而,不是所有STM32系列都支持EVENTOUT功能,且具体实现可能因型号而异。
9. GPIO_EXTI11
-
GPIO_EXTI11:这通常表示引脚被配置为外部中断线11的输入。当该引脚上的信号满足特定条件(如上升沿、下降沿或双边沿触发)时,可以生成外部中断请求。
详细GPIO 引脚 输入配置
这里我们当作按键的输入模式:选择引脚上拉Pull-up 和用户标签:KEY
1. GPIO mode (GPIO模式) - Input mode (输入模式)
-
Input mode(输入模式): 选择此模式将引脚配置为输入状态,用于读取外部电路或设备的信号。在输入模式下,引脚可以感知外部电平的变化,并将这些变化传递给微控制器的内部电路进行处理。
2. GPIO Pull-up/Pull-down (GPIO上拉/下拉)
-
No Pull-up and Pull-down(无上拉/下拉): 在此设置下,引脚处于浮空状态,没有内部电阻连接到电源或地。这意味着引脚电平将完全由外部电路决定,可能会受到噪声或干扰的影响。
-
Pull-up(上拉): 选择此选项后,引脚内部会连接一个上拉电阻,将引脚电平默认拉高到高电平(通常接近供电电压)。当外部电路将引脚拉低时,微控制器可以检测到低电平信号。上拉电阻有助于确保引脚在未被外部电路驱动时保持稳定的电平。
-
Pull-down(下拉): 选择此选项后,引脚内部会连接一个下拉电阻,将引脚电平默认拉低到低电平(接近地电平)。当外部电路将引脚拉高时,微控制器可以检测到高电平信号。下拉电阻同样有助于确保引脚在未被外部电路驱动时保持稳定的电平。
3. User Label (用户标签)
-
User Label(用户标签): 这是一个可选的字段,允许您为引脚分配一个自定义的名称或标签。这有助于在代码中更容易地识别和使用该引脚,特别是在处理多个引脚和复杂电路时。通过为引脚设置用户标签,您可以在代码中使用更具描述性的名称来引用引脚,从而提高代码的可读性和可维护性。
用途总结
-
输入模式用于读取外部信号,是GPIO引脚的基本功能之一。
-
上拉/下拉电阻用于确保引脚在未被外部电路驱动时保持稳定的电平,减少噪声和干扰的影响。
-
用户标签用于为引脚分配自定义名称,提高代码的可读性和可维护性。
在配置GPIO引脚为输入模式时,请根据您的应用需求选择合适的上拉/下拉选项,并为引脚分配一个易于识别的用户标签(如果需要)。这些设置将帮助您确保引脚能够正确地读取外部信号,并在代码中轻松地引用和管理引脚。
按键输入推荐配置
- GPIO Pull-up/Pull-down:
- 如果按键在未被按下时,其引脚通过外部电阻连接到地(GND),那么您通常需要在STM32内部选择“Pull-up”(上拉)来确保引脚在未被按键按下时保持高电平。当按键被按下时,引脚会被拉低到地电平,微控制器可以检测到这个低电平信号。
- 如果按键在未被按下时,其引脚通过外部电阻连接到电源(如3.3V),那么您通常需要在STM32内部选择“Pull-down”(下拉),但这种情况较少见。更常见的是使用内部上拉电阻和外部下拉电阻的组合,但在这种情况下,您仍然会选择内部上拉,并在外部电路上实现下拉。
- 如果按键电路中没有外部上拉或下拉电阻,您需要根据按键的具体电路设计和STM32的内部特性来决定是使用上拉还是下拉,或者选择“No Pull-up and Pull-down”(无上拉/下拉)并依靠外部电路的稳定性。
按键输入控制LED代码
生成代码后,我们可以继续在主函数的while循环中:
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
// 按键被按下,翻转LED的状态 注意:这里实际上使用需要加上按键消抖逻辑
if (HAL_GPIO_ReadPin(KEY_GPIO_Port, KEY_Pin) == GPIO_PIN_RESET) // 按键的用户标签为 KEY
{
HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); // LED灯的用户标签为 LED
}
}
/* USER CODE END 3 */
这里需要加上消抖逻辑,只是演示按键输入效果
编译下载
如果点击下载后没有单片机没有反应,则可能需要复位程序才会运行
如果需要下载后程序自动运行,可以参考,其中有说明下载配置:(学习记录)使用 STM32CubeMX——GPIO引脚输出配置
效果演示:
章节结尾:
至此,本章节GPIO输入配置部分结束,再下一章学习笔记中,将会记录GPIO外部中断配置