|
发表于 2025-6-26 12:02:52
|
显示全部楼层
chatgpt加注释:
- #include "stm32f10x.h" // 包含STM32F10x系列的外设头文件
- #include "Delay.h" // 包含延时函数头文件
- int main(void)
- {
- // 1. 使能GPIOA端口的时钟
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
-
- // 2. 配置GPIOA的第0号引脚为推挽输出模式,速度为50MHz
- GPIO_InitTypeDef GPIO_InitStructure;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // 选择PA0引脚
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 输出速度50MHz
- GPIO_Init(GPIOA, &GPIO_InitStructure); // 初始化GPIOA.0
-
- // 3. 主循环,循环点亮和熄灭LED(假设PA0接LED)
- while (1)
- {
- // 方法1:使用GPIO_ResetBits和GPIO_SetBits控制引脚
- GPIO_ResetBits(GPIOA, GPIO_Pin_0); // PA0输出低电平(LED亮/灭取决于接法)
- Delay_ms(500); // 延时500ms
- GPIO_SetBits(GPIOA, GPIO_Pin_0); // PA0输出高电平
- Delay_ms(500); // 延时500ms
-
- // 方法2:使用GPIO_WriteBit控制引脚
- GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET); // PA0输出低电平
- Delay_ms(500); // 延时500ms
- GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET); // PA0输出高电平
- Delay_ms(500); // 延时500ms
-
- // 方法3:直接用0/1强制类型转换控制引脚
- GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)0); // PA0输出低电平
- Delay_ms(500); // 延时500ms
- GPIO_WriteBit(GPIOA, GPIO_Pin_0, (BitAction)1); // PA0输出高电平
- Delay_ms(500); // 延时500ms
- }
- }
复制代码 |
|