2016 - 2024

感恩一路有你

STM32 LED闪烁程序框架

浏览量:1890 时间:2024-08-18 15:53:02 作者:采采

下面介绍了一个基于STM32的LED闪烁程序的框架,包括各个步骤的详细解释。

程序总体框架

首先是程序的总体框架,代码如下:

include "led.h"
int main(void) {
    LED_Init();
    while(1) {
        led_display();
    }
}

LED初始化函数

LED初始化函数用于配置系统时钟、打开相应管脚的时钟以及配置端口。代码如下:

include "led.h"
/*延时函数*/
void delay(u32 i) {
    while(i--);
}
/*LED初始化函数*/
void LED_Init() {
    SystemInit();
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO__Pin  GPIO_Pin_All;
    GPIO__Mode  GPIO_Mode_Out_PP;
    GPIO__Speed  GPIO_Speed_50MHz;
    GPIO_Init(GPIOD, GPIO_InitStructure);
}

LED驱动函数

LED驱动函数用于控制LED的亮灭。代码如下:

include "led.h"
void led_display() {
    GPIO_SetBits(GPIOD, GPIO_Pin_All);
    delay(6000000);
    GPIO_ResetBits(GPIOD, GPIO_Pin_All);
    delay(6000000);
}

LED头文件

以下是LED头文件的内容:

ifndef _LED_H
define _LED_H
include 
void LED_Init(void);
void led_display(void);
endif

配置系统时钟

在STM32中配置时钟是很重要的,可以通过一个库函数来配置系统时钟为72Mhz。代码如下:

SystemInit();

打开相应的管脚的时钟

配置好系统的时钟之后,需要打开相应外设的时钟。在本例中,使用的是PD端口的13号管脚,所以需要打开端口D的时钟。代码如下:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

配置端口

打开相应端口的时钟之后,需要进行相应的配置。在本例中,只使用了PD13管脚,所以只需配置PD13。代码如下:

GPIO_InitTypeDef GPIO_InitStructure;
GPIO__Pin  GPIO_Pin_13;
GPIO__Mode  GPIO_Mode_Out_PP;
GPIO__Speed  GPIO_Speed_50MHz;
GPIO_Init(GPIOD, GPIO_InitStructure);

延时函数

延时函数是自己定义的函数,用于进行简单的延时操作。代码如下:

void delay(u32 i) {
    while(i--);
}

以上就是关于STM32 LED闪烁程序的详细介绍和代码解析。通过这个程序框架,可以实现LED的闪烁效果。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。