想让STM32“听懂”外部信号?比如按键按下、传感器触发?核心就是读取GPIO(通用输入输出)的电平状态!本文用最直白的方式,教你3步完成高低电平检测。
一、选对模式:输入模式三选一
GPIO输入模式分3种,按需选择:
浮空输入:引脚悬空时电平不确定(可能高可能低),适合接外部电路明确控制的信号(如按键+外部上拉电阻)。
上拉输入:内部接上拉电阻,默认高电平,适合检测“下拉到低电平”的信号(如按键接地)。
下拉输入:内部接下拉电阻,默认低电平,适合检测“拉高到高电平”的信号(如外部模块输出高电平触发)。
关键点:根据外部电路设计选模式!比如按键一端接地,另一端接GPIO,就选上拉输入。
二、使能时钟:给GPIO“通电”
STM32的GPIO需要时钟才能工作,必须先打开对应端口的时钟。
操作:在代码中调用 __HAL_RCC_GPIOx_CLK_ENABLE()(x替换为A/B/C等端口号)。
比喻:就像开灯前先打开电闸,否则灯不会亮。
三、读取电平:1行代码搞定
用库函数 HAL_GPIO_ReadPin() 直接读取电平状态:

返回值:GPIO_PIN_SET(高电平)或 GPIO_PIN_RESET(低电平)。
注意:引脚号(如 GPIO_PIN_0)需与硬件连接一致。
本文凡亿教育原创文章,转载请注明来源!
暂无评论