STM32led流水灯实验报告
时间: 2023-07-16 21:16:00 浏览: 1444
stm32led流水灯实验
实验名称:STM32流水灯实验
实验目的:
1. 了解STM32F103C8T6主控芯片的IO口控制;
2. 熟悉Keil C语言开发环境的使用;
3. 学会编写STM32F103C8T6单片机的程序;
4. 掌握流水灯的实现原理。
实验器材:
1. STM32F103C8T6开发板;
2. USB数据线;
3. 杜邦线。
实验原理:
流水灯是一种常见的控制方式,也是最基础的控制方式之一。流水灯是通过一组LED依次点亮,再依次熄灭,形成一种流动的效果。单片机控制LED灯的亮灭可以实现流水灯效果。
实验步骤:
1. 将STM32F103C8T6开发板连接到电脑上,并打开Keil C语言开发环境。
2. 在Keil C语言开发环境中,新建一个工程。选择新建项目,填入项目名称和存储路径,点击确定。
3. 在工程目录下新建一个源文件,文件名为main.c。
4. 打开main.c文件,编写代码如下:
```
#include "stm32f10x.h"
#include "delay.h"
GPIO_InitTypeDef GPIO_InitStructure;
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
while(1)
{
GPIO_SetBits(GPIOB, GPIO_Pin_12);
Delay(50);
GPIO_ResetBits(GPIOB, GPIO_Pin_12);
GPIO_SetBits(GPIOB, GPIO_Pin_13);
Delay(50);
GPIO_ResetBits(GPIOB, GPIO_Pin_13);
GPIO_SetBits(GPIOB, GPIO_Pin_14);
Delay(50);
GPIO_ResetBits(GPIOB, GPIO_Pin_14);
GPIO_SetBits(GPIOB, GPIO_Pin_15);
Delay(50);
GPIO_ResetBits(GPIOB, GPIO_Pin_15);
}
}
```
5. 完成代码编写后,进行编译。在编译成功后,将STM32F103C8T6开发板通过USB数据线连接到电脑上。然后在Keil C语言开发环境中,点击“Options for Target”选项,进入Target选项卡,在“Settings”栏目下的“Debug”选项中选择“ST-Link Debugger”。
6. 在Keil C语言开发环境中,点击“Flash”选项卡,然后将编译成功后生成的HEX文件下载到STM32F103C8T6开发板中。
7. 完成下载后,拔掉USB数据线,然后将开发板的电源接通。此时,流水灯就会开始工作。
实验结果:
当STM32F103C8T6开发板的电源接通后,流水灯就会开始工作。LED灯会依次点亮和熄灭,形成一种流动的效果。
实验总结:
通过本次实验,我对STM32F103C8T6主控芯片的IO口控制有了更深入的了解,同时也熟悉了Keil C语言开发环境的使用。通过编写代码,我成功地实现了流水灯的效果,加深了我对流水灯实现原理的理解。
阅读全文