请帮我解释一下这个代码,他怎么写出来的,他的步骤。
char count=0;
void delay(int n)//½áÊø
{
while(n--);
}
int main(void)
{
_Bool x,z;
LED_GPIO_Config();
//LED0(OFF);
Key_GPIO_Config();//zhenglieshi
x=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);
z=x;
while(1)
{
//x=KEY_Scan(GPIOA,GPIO_Pin_0);
x=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);
if(x==KEY_ON)
{
delay(1000);
z=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);
if(z!=KEY_ON)
{
count++;
}
}
if(count%2==0)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
}
else
GPIO_SetBits(GPIOB,GPIO_Pin_0);
}}
单片机代码结构一般是先进行一些硬件配置和初始化,然后才执行流程完成各种功能
从主函数 main 开始
LED_GPIO_Config(); // LED引脚配置,初始化,比如引脚初始化为低电平还是高电平
Key_GPIO_Config(); // 按键引脚初始化
x=GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0); // 读取按键PA0引脚电平状态
if(x==KEY_ON) //如果按下了按键
{
delay(1000); // 延时一小会
z=GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0); // 然后再读取PA0引脚状态
if(z!=KEY_ON) // 如果不是按下按键
{
count++;
}
}
if(count%2==0) // 如果连续按下2次
{
GPIO_ResetBits(GPIOB,GPIO_Pin_0); // 设置PB0低电平
}
else
GPIO_SetBits(GPIOB,GPIO_Pin_0); // 否则设置高电平
}