基于STM32F103ZETled0和led1闪亮代码
时间: 2024-09-27 09:04:10 浏览: 35
在STM32F103ZET6微控制器上,通过GPIO控制LED灯闪亮,可以编写基于C语言的固件程序。以下是一个简单的示例代码,它会交替点亮LED0和LED1:
```c
#include "stm32f10x.h" // 包含STM32官方库
// 定义LED灯的GPIO口配置
#define LED0_GPIO GPIOB
#define LED0_PIN PB0
#define LED1_GPIO GPIOB
#define LED1_PIN PB1
void delay_ms(uint32_t milliseconds) {
uint32_t start = HAL_GetTick();
while (HAL_GetTick() - start < milliseconds);
}
int main(void) {
// 初始化GPIO
RCC_AHB1PeriphClockCmd(LED0_GPIO->GPIO_PinSource0 | LED1_GPIO->GPIO_PinSource1, ENABLE); // 启动GPIOB时钟
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = LED0_PIN | LED1_PIN; // 配置要操作的LED引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 输出推挽模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 设置速度为50MHz
GPIO_Init(LED0_GPIO, &GPIO_InitStructure);
while (1) {
// LED0亮起
GPIO_SetBits(LED0_GPIO, LED0_PIN);
delay_ms(500);
// LED0熄灭,LED1亮起
GPIO_ResetBits(LED0_GPIO, LED0_PIN);
GPIO_SetBits(LED1_GPIO, LED1_PIN);
delay_ms(500);
// LED1熄灭,LED0再亮起,如此循环
GPIO_ResetBits(LED1_GPIO, LED1_PIN);
GPIO_SetBits(LED0_GPIO, LED0_PIN);
delay_ms(500);
}
}
```
阅读全文