三、配置STM32cubeMX
根据按键官方原理图:PB0控制B1按键
PB1控制B2按键
PB2控制B3按键
PA0控制B4按键
将这四个口配置为GPIO输入模式
GPIO输入口配置为上拉模式。
在很多情况下,当GPIO配置为输入模式并且没有连接任何输入信号时,该端口的状态是不确定的。也就是说,如果输入没有被拉高到VCC或拉低到GND,端口可能会随着环境噪声或电气干扰而随机地改变状态。这种状态被称为浮空状态(floating state),它可能导致不可预测的行为,特别是在数字逻辑电路中。为了避免这种情况,可以配置内部的上拉(pull-up)或下拉(pull-down)电阻器。上拉模式意味着内部电阻将GPIO端口拉高到VCC,确保在没有外部信号时,端口状态为高;下拉模式则意味着内部电阻将GPIO端口拉低到GND,确保端口状态为低。
上拉电阻是为了保证在没有信号输入的时候,IO口保持高电平,若按键为低电平有效,则没有信号的时候,IO应呈现高电平,所以,此处应设置为上拉输入。
同理,下拉电阻是为了保证在没有信号输入的时候,IO口保持低电平,若按键为高电平有效,则没有信号的时候,IO应呈现低电平。
四、按键控制LED亮与灭
实验现象:按下B1按键,LED1亮!按下B2按键,LED1灭!
按下B3按键,LED2亮!按下B4按键,LED2灭!
1.创建key.c和key.h文件,将其分别放入Src跟Inc文件中,与第一篇文章中代码封装的步骤一致。
2.编写key.c中代码