void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure); } void main(void) { // LED_Init(); GPIO_Configuration(); int flag = 0; led_init(); while (1){ if(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_15) == Bit_SET){ // 触摸 if(flag == 0) { D5_off(); flag = 1; } else { D5_on(); flag = 0; } while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_15) == Bit_SET) {} // 等待松开 } } }将以上代码进行注释
时间: 2024-03-13 21:45:53 浏览: 34
以下是注释后的代码:
```c
void GPIO_Configuration(void) {
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOB时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; // PB5
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 最大输出速度50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); // 初始化GPIOB
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); // 使能GPIOD时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; // PD15
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; // 输入,下拉
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 最大输入速度50MHz
GPIO_Init(GPIOD, &GPIO_InitStructure); // 初始化GPIOD
}
void main(void) {
GPIO_Configuration(); // 初始化GPIO
int flag = 0; // 定义标志位,初始为0
led_init(); // 初始化LED灯
while (1) {
if (GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_15) == Bit_SET) { // 如果触摸按键被按下
if (flag == 0) { // 如果标志位为0
D5_off(); // 熄灭LED灯
flag = 1; // 将标志位设为1
} else { // 如果标志位为1
D5_on(); // 点亮LED灯
flag = 0; // 将标志位设为0
}
while (GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_15) == Bit_SET) {} // 等待松开
}
}
}
```