keil5流水灯
时间: 2025-03-29 07:01:44 浏览: 35
Keil 5 是一款广泛应用于嵌入式系统开发的集成开发环境(IDE),特别适合基于 ARM Cortex-M 系列微控制器的应用开发。下面我们通过一个简单的例子——“流水灯”,来了解如何使用 Keil 5 实现这个功能。
### 流水灯简介
流水灯是一种常见的硬件实验项目,在开发板上控制多个 LED 按顺序依次点亮、熄灭,形成一种动态的效果。它不仅有助于学习 GPIO 的基本操作,还能加深对延时函数的理解。
以下是利用 Keil 5 编程实现流水灯的基本步骤:
#### 步骤一:配置开发环境
1. 安装并打开 **Keil MDK-ARM** 软件。
2. 创建一个新的工程 (New uVision Project),选择目标芯片型号(例如 STM32F103RCT6 或其他支持的 MCU)。
3. 配置工具链和调试选项,并将标准库或 HAL 库引入到工程中。
#### 步骤二:初始化端口
```c
#include "stm32f1xx_hal.h"
void GPIO_Init(void) {
__HAL_RCC_GPIOA_CLK_ENABLE(); // 开启GPIOA时钟
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* 设置PA8 - PA15 引脚为输出模式 */
GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
```
上述代码片段用于初始化指定的 GPIO 引脚作为推挽输出模式。
#### 步骤三:编写主循环程序
```c
int main(void){
HAL_Init(); // 初始化HAL库
GPIO_Init(); // 初始化GPIO
while(1){ // 主循环
for(int i=8;i<=10;i++){
uint16_t pin_mask = GPIO_PIN(i);
HAL_GPIO_WritePin(GPIOA, pin_mask , GPIO_PIN_SET); // 点亮LED
HAL_Delay(500); // 延迟500ms
HAL_GPIO_WritePin(GPIOA, pin_mask , GPIO_PIN_RESET); // 关闭LED
HAL_Delay(500); // 再次延迟
}
}
}
```
该部分实现了让连接至 `PA8`, `PA9` 和 `PA10` 上的三个 LED 按序闪烁的功能。
---
###
阅读全文
相关推荐


















