stm32 keil5的流水灯代码
时间: 2024-09-11 11:01:18 浏览: 132
STM32 Keil5的流水灯代码通常用于演示GPIO的基本操作,它会通过逐个点亮和熄灭GPIO引脚,使得LED像流水一样轮流闪烁。这是一个简单的示例:
```c
#include "stm32f10x.h"
// 定义LED引脚
#define LED_PIN GPIO_Pin_0 // 这里假设是PA0
#define LED_PORT GPIO_PortA
#define LED_RCC GPIO_RCC_AHBENR_GPIOAEN
void delay_ms(uint32_t ms) {
uint32_t start = HAL_GetTick();
while ((HAL_GetTick() - start) < ms * 1000 / 1000);
}
int main(void) {
RCC_AHB1PeriphClockCmd(LED_RCC, ENABLE); // 开启LED端口的时钟
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = LED_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 输出推挽模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED_PORT, &GPIO_InitStructure);
for (uint8_t i = 0; i <= 7; ++i) { // 假设有8个LED,循环显示
GPIO_SetBits(LED_PORT, LED_PIN); // 点亮当前LED
delay_ms(500); // 暂停一段时间
GPIO_ResetBits(LED_PORT, LED_PIN); // 熄灭当前LED
delay_ms(500); // 再次暂停
}
while (1) {} // 无限循环,程序永远运行
}
阅读全文