STM32开发板流水灯
时间: 2023-09-12 07:07:01 浏览: 77
流水灯是最基础的 LED 程序,可以让我们快速熟悉 STM32 开发板的编程环境。下面是一个简单的流水灯程序:
```c
#include "stm32f4xx.h"
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
int main(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct);
while(1)
{
GPIO_SetBits(GPIOA, GPIO_Pin_0);
Delay(1000000);
GPIO_ResetBits(GPIOA, GPIO_Pin_0);
GPIO_SetBits(GPIOA, GPIO_Pin_1);
Delay(1000000);
GPIO_ResetBits(GPIOA, GPIO_Pin_1);
GPIO_SetBits(GPIOA, GPIO_Pin_2);
Delay(1000000);
GPIO_ResetBits(GPIOA, GPIO_Pin_2);
GPIO_SetBits(GPIOA, GPIO_Pin_3);
Delay(1000000);
GPIO_ResetBits(GPIOA, GPIO_Pin_3);
}
}
void Delay(__IO uint32_t nCount)
{
while(nCount--)
{
}
}
```
这个程序可以让 PA0、PA1、PA2、PA3 四个引脚上的 LED 每隔一段时间交替点亮。在主函数中,首先需要初始化 GPIO,将 PA0、PA1、PA2、PA3 四个引脚配置为输出模式,同时设置输出口的属性,比如输出速度和推挽输出等。之后就是一个死循环,在循环中依次点亮四个引脚上的 LED,每个 LED 亮 1 秒钟,然后熄灭,再点亮下一个 LED,循环往复。
其中,Delay 函数是一个简单的延时函数,用于控制 LED 点亮的时间。在这个函数中,使用了一个循环来进行延时,这个循环的次数可以通过调整参数 nCount 来控制延时的时间长短。由于这个延时函数没有使用定时器,所以精度比较低,但对于这个简单的程序已经足够了。
需要注意的是,在使用 STM32F4 开发板时,需要导入相关的头文件和库文件,并进行相应的配置,才能成功编译和烧录程序。
阅读全文