有个项目要求判断STM32某个按键输入状态,经常出现不稳定的现象,网上查了下,原来需要设置成上拉模式并且要把输入脚输出为高电平,原文如下:
GPIO处于输入模式下,下拉输入和上拉输入的相关配置如下图所示。需要注意的是,下拉输入和上拉输入是通过端口输出寄存器GPIOx_ODR来区分的。因此,在进行上拉/下拉输入配置时候,虽然对GPIO进行的关于输入的操作,但是仍要对和输出相关的寄存器ODR进行配置。
上述注意事项在实际代码编写时表现为:
(1)库函数
特此说明,虽然GPIO_Mode中区分了上拉输入模式GPIO_Mode_IPU和下拉输入模式GPIO_Mode_IPD,如下图所示,但是在GPIO初始化配置时候仍然需要对ODR寄存器进行设置,如上述的GPIO_ResetBits(GPIOA,GPIO_Pin_0);操作。
此外,GPIO处于输入模式下,不需要对MODE1和MODE0进行设置(初始化之后默认为00)
输出模式位(仅在输出模式下配置,输入模式下不需要)
原贴:http://blog.youkuaiyun.com/lbsgrowup/article/details/47619471
本文介绍了STM32中按键输入不稳定的问题,并给出了具体的解决办法。重点在于如何正确配置GPIO的上拉或下拉输入模式,包括使用库函数和直接操作寄存器的方法。
1901





