NUCLEO-G071RB:003——GPIO-按键控制LED灯
- 设计目标
- 电路原理图
- 芯片配置
- 程序修改
设计目标
用输入控制输出,即以蓝色按键B1的输入控制LED4灯的输出
细节:
- 若判定为按键按下中,则LED灭灯,否则亮灯
- 按键按下和抬起的检查均用延时滤波
电路原理图
因为单片机的PC13与按键B1相连,且PC13有外部上拉电阻R29,所以,PC13可以初始化为“GPIO浮空输入、无内部上/下拉电阻”,也可初始化为“GPIO浮空输入、内部上拉电阻ON”(功耗稍大),两种初始化方法都能够实现设计目标。
芯片配置
1、PA5(LD4):推挽输出L,其他参数维持默认
2、PC13(B1):浮空输入,其他参数维持默认
程序修改
主循环中追加以下代码
if (HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_SET)
{
HAL_Delay(10);
if (HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_SET)
{
HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_SET); //LED ON
}
}
else
{
HAL_Delay(10);
if (HAL_GPIO_ReadPin(B1_GPIO_Port, B1_Pin) == GPIO_PIN_RESET)
{
HAL_GPIO_WritePin(LD4_GPIO_Port, LD4_Pin, GPIO_PIN_RESET); //LED OFF
}
}
编译、下载、运行,发现LED4的ON/OFF收按键控制