这段代码是一个死循环,它不断检测GPIOB的第13引脚的状态,并根据按键的按下次数控制GPIOC的第14引脚(LED灯)的亮灭。

代码逻辑如下:

  • 检测GPIOB的第13引脚的状态是否为0(按键是否按下)。
  • 如果按键按下了,延时20毫秒后再次检测GPIOB的第13引脚的状态。
  • 如果第二次检测到GPIOB的第13引脚的状态仍为0(确认按键确实按下),则执行以下操作:
    • 递增变量i的值。
    • 如果i的值为1,将GPIOC的第14引脚置为低电平(LED灯亮)。
    • 如果i的值为2,将GPIOC的第14引脚置为高电平(LED灯灭),并将i重置为0。
  • 进行300毫秒的延时。

请注意,具体的GPIO读写函数和延时函数应根据您的硬件平台和需求进行适当的修改和调整。

while(1) {
    if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13) == 0) {
        Delay_ms(20);
        if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13) == 0) {
            i = i + 1;
            if (i == 1) {
                GPIO_ResetBits(GPIOC, GPIO_Pin_14);
            } else if (i == 2) {
                GPIO_SetBits(GPIOC, GPIO_Pin_14);
                i = 0;
            }
        }
    }
    Delay_ms(300);
}

原文地址: https://www.cveoy.top/t/topic/bxtC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录