基于STM32F103的流水灯程序
时间: 2023-09-03 11:09:16 浏览: 82
基于STM32F103的流水灯
5星 · 资源好评率100%
以下是基于STM32F103的流水灯程序:
```c
#include "stm32f10x.h"
void delay(void);
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能GPIOC时钟
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3; //设置GPIO引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //设置引脚输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置引脚输出速率
GPIO_Init(GPIOC, &GPIO_InitStructure); //初始化GPIOC
while (1)
{
GPIO_SetBits(GPIOC, GPIO_Pin_0); //点亮第一个LED灯
delay();
GPIO_ResetBits(GPIOC, GPIO_Pin_0); //熄灭第一个LED灯
GPIO_SetBits(GPIOC, GPIO_Pin_1); //点亮第二个LED灯
delay();
GPIO_ResetBits(GPIOC, GPIO_Pin_1); //熄灭第二个LED灯
GPIO_SetBits(GPIOC, GPIO_Pin_2); //点亮第三个LED灯
delay();
GPIO_ResetBits(GPIOC, GPIO_Pin_2); //熄灭第三个LED灯
GPIO_SetBits(GPIOC, GPIO_Pin_3); //点亮第四个LED灯
delay();
GPIO_ResetBits(GPIOC, GPIO_Pin_3); //熄灭第四个LED灯
}
}
void delay(void)
{
int i, j;
for (i = 0; i < 1000; i++)
{
for (j = 0; j < 1000; j++)
{
// 延时函数
}
}
}
```
该程序使用了STM32F103的GPIOC端口控制四个LED灯的点亮和熄灭。通过循环控制每个LED灯的点亮和熄灭,实现了流水灯的效果。其中,`delay()`函数用于延时,以控制LED灯的亮灭时间。
阅读全文