LED闪烁功能代码详解

GPIO_InitTypeDef GPIO_InitStructure;
定义一个类型为 GPIO_InitTypeDef 的结构体变量,用于配置 GPIO 的各项参数
GPIO_InitTypeDef 是 STM32 标准外设库中定义的一个结构体,包含以下:
GPIO_Pin:指定要配置的引脚( GPIO_Pin_0 ~ GPIO_Pin_15)
GPIO_Mode:设置引脚的8种工作模式(输入/输出/复用等)
GPIO_Speed:设置输出模式下的最大翻转速度(仅对输出有效,要求不高时一般设置为50MHz)
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
使能 GPIOA 的时钟.
GPIOA 连接在 APB2 总线 上,所以调用的是 RCC_APB2PeriphClockCmd()。
参数 RCC_APB2Periph_GPIOA 表示要使能 GPIOA 的时钟,ENABLE 表示开启。
GPIO_Init(GPIOA, &GPIO_InitStructure);
将上面的配置应用到 GPIOA 端口。
此时,PA0 引脚已被配置为 50MHz 推挽输出模式,可以由软件控制其输出高低电平 GPIO_SetBits() 或 GPIO_ResetBits()。

使用 GPIO_ResetBits / GPIO_SetBits
GPIO_ResetBits(GPIOA, GPIO_Pin_0); // PA0 输出低电平0V
Delay_ms(500); // 延时 0.5s
GPIO_SetBits(GPIOA, GPIO_Pin_0); // PA0 输出高电平3.3V
Delay_ms(500); // 延时 0.5s
// 第二组:使用 GPIO_WriteBit
GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET); // PA0 = 0
Delay_ms(500);
GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET); // PA0 = 1
Delay_ms(500);
LED 以 0.5 秒亮、0.5 秒灭、再 0.5 秒亮、0.5 秒灭 的方式循环。
