stm32按键检测时返回值是123,主要是由于stm32的GPIO引脚默认是浮空的,导致输入电平不稳定,如果没有设置上拉或下拉电阻,就会出现按键返回值不稳定或者出现异常,而123是由于GPIO引脚上拉的情况下,读取输入电平的结果。
因此,在stm32使用按键时,需要设置GPIO引脚的上拉或下拉电阻,从而保证输入信号的稳定性和准确性。
stm32中,GPIO引脚的上拉电阻和下拉电阻可以通过寄存器来设置,具体操作如下:
1)设置引脚方向,将引脚设置为输入模式
2)设置引脚的上拉或下拉电阻,可以选择内部上拉/下拉或外部上拉/下拉,内部上拉/下拉需要通过设置GPIO端口模式寄存器(GPIOx_PUPDR)来实现,外部上拉/下拉可以通过连接外部电阻来实现。
3)读取GPIO引脚输入状态
GPIO端口模式寄存器(GPIOx_MODER)是用来控制GPIO引脚的输入/输出模式,可以通过设置来选择引脚的模式。在设置引脚的上拉或下拉电阻时,需要先将引脚设置为输入模式。设置方法如下:
1)选择端口,将GPIOx_MODER设置为输入模式,在MODER中的位域设置为00。
2)选择上拉或下拉模式,设置GPIOx_PUPDR为上拉或下拉电阻,需要将PUPDR中的位域设置为01或10。如果是外部上拉或下拉,需要连接对应的电阻并将PUPDR中的位域设置为00即可。
3)读取GPIO引脚输入状态,即可获取到准确的输入信号。
需要注意的是,在使用GPIO引脚时,还需要考虑到接口的电气特性和物理连接,尤其是在使用外部上拉电阻或下拉电阻时,需要注意外部连接的电阻值和位置,以及防止电磁干扰等问题。
此外,在使用stm32的按键检测时,还可以通过软件消抖来进一步确保输入信号的稳定性和准确性。