一、基础工程
1. 查看引脚
B1~B4 对应引脚 为 PB0,PB1,PB2,PA0。按键按下后,接入低电平;抬起后为高电平。
2. CubeMX配置
4个对应引脚配置成 GPIO_Input。
3. 所用HAL库函数
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin)
{
GPIO_PinState bitstatus;
/* Check the parameters */
assert_param(IS_GPIO_PIN(GPIO_Pin));
if ((GPIOx->IDR & GPIO_Pin) != 0x00U)
{
bitstatus = GPIO_PIN_SET;
}
else
{
bitstatus = GPIO_PIN_RESET;
}
return bitstatus;
}
功能:读取引脚电平状态
参数说明:
GPIOx:端口号 GPIOA,GPIOB,GPIOC
GPIO_Pin:引脚号 GPIO_PIN_0,GPIO_PIN_1,GPIO_PIN_2 ...
返回值:
GPIO_PinState PinState:引脚的状态 GPIO_PIN_SET , GPIO_PIN_RESET
4. 编写Key_Scan()函数
uint8_t Key_Scan(void)
{
uint8_t key_val=0;
//PB0
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==GPIO_PIN_RESET)
{
key_val=1;
}
//PB1
if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==GPIO_PIN_RESET)
{
key_val=2;