keil 5流水灯流水两个灯
时间: 2025-03-23 19:15:39 浏览: 92
Keil 5是一款广泛应用于嵌入式系统开发的集成开发环境(IDE),它支持多种ARM架构微控制器的程序编写、调试和仿真功能。下面以实现“流水灯”效果为例,简单说明如何通过Keil 5完成两个LED灯交替亮灭的效果。
### 实现步骤
#### 硬件准备
假设我们使用的单片机型号为STM32F103C8T6,并连接了两颗外部LED分别到GPIO端口PA5和PA6上。
#### 软件设计思路
1. **初始化引脚**
配置PA5和PA6作为输出模式,用于控制LED的状态。
2. **主循环逻辑**
- 设置PA5高电平点亮第一个LED;
- 延时一段时间让灯光停留可见;
- 将PA5拉低熄灭该LED同时将PA6设为高电平点亮第二个LED;
- 再次延时然后切换回初始状态;不断重复上述过程即可形成简单的双灯轮流闪烁即所谓"流水"现象。
```c
#include "stm32f1xx.h"
void Delay(__IO uint32_t nCount) {
while (nCount--) {}
}
int main(void)
{
// 初始化RCC时钟配置
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
// PA5 和 PA6设置成推挽输出模式
GPIOA->CRH &= ~(0xF << 20); /* Clear Mode bits */
GPIOA->CRH |= (0x4 << 20); /* Set to General purpose output mode */
for (;;){
GPIOA->ODR = (1U<<5); // 打开第1盏灯(对应Pin A5)
Delay(0xFFFFF);
GPIOA->ODR = (1U<<6); // 切换至第二盏(Pin A6),关闭第一盏(A5自动清除前一周期值)
Delay(0xFFFFF);
}
}
```
注意以上代码仅提供基本框架示意,在实际项目里还需要考虑更多细节如精确时间基准等。
阅读全文
相关推荐


















