使用C语言制作一个间隔为三秒的闪烁灯效果,使用for循环,stm32主频为72
时间: 2024-10-21 12:15:38 浏览: 26
在STM32微控制器上使用C语言创建一个间隔为三秒的闪烁灯效果,通常需要通过GPIO控制LED,并结合定时器来实现延时。假设我们有全局变量ledPin来代表LED的GPIO口,这里是一个基本的示例:
```c
#include "stm32f4xx.h"
#include "delay.h" // 假设有一个自定义的delay函数库
// STM32 GPIO配置信息
GPIO_TypeDef* ledPort = GPIOA; // LED连接到GPIOA
uint16_t ledPin = GPIO_Pin_0; // LED的第一位
void led_flash(void) {
GPIO_InitTypeDef gpio_init;
// 初始化GPIO
gpio_init.Mode = GPIO_Mode_Out_PP; // 输出推挽模式
gpio_init.Pull = GPIO_NOPULL; // 无拉力
gpio_init.Speed = GPIO_Speed_50MHz; // 高速
GPIO_Init(ledPort, &gpio_init);
for (;;) { // 无限循环
GPIO_SetBits(ledPort, ledPin); // 点亮LED
delay_ms(3000); // 延迟3000毫秒,即3秒
GPIO_ResetBits(ledPort, ledPin); // 熄灭LED
delay_ms(3000); // 再次延时3秒,形成闪烁效果
}
}
int main(void) {
led_flash();
while (1); // 主循环,防止程序结束
}
```
阅读全文