卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

STM32 LED閃爍程序框架

下面介紹了一個(gè)基于STM32的LED閃爍程序的框架,包括各個(gè)步驟的詳細(xì)解釋。 程序總體框架 首先是程序的總體框架,代碼如下: include "led.h" int main(void)

下面介紹了一個(gè)基于STM32的LED閃爍程序的框架,包括各個(gè)步驟的詳細(xì)解釋。

程序總體框架

首先是程序的總體框架,代碼如下:

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

LED初始化函數(shù)

LED初始化函數(shù)用于配置系統(tǒng)時(shí)鐘、打開相應(yīng)管腳的時(shí)鐘以及配置端口。代碼如下:

include "led.h"
/*延時(shí)函數(shù)*/
void delay(u32 i) {
    while(i--);
}
/*LED初始化函數(shù)*/
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驅(qū)動(dòng)函數(shù)

LED驅(qū)動(dòng)函數(shù)用于控制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頭文件的內(nèi)容:

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

配置系統(tǒng)時(shí)鐘

在STM32中配置時(shí)鐘是很重要的,可以通過一個(gè)庫函數(shù)來配置系統(tǒng)時(shí)鐘為72Mhz。代碼如下:

SystemInit();

打開相應(yīng)的管腳的時(shí)鐘

配置好系統(tǒng)的時(shí)鐘之后,需要打開相應(yīng)外設(shè)的時(shí)鐘。在本例中,使用的是PD端口的13號(hào)管腳,所以需要打開端口D的時(shí)鐘。代碼如下:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

配置端口

打開相應(yīng)端口的時(shí)鐘之后,需要進(jìn)行相應(yīng)的配置。在本例中,只使用了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);

延時(shí)函數(shù)

延時(shí)函數(shù)是自己定義的函數(shù),用于進(jìn)行簡(jiǎn)單的延時(shí)操作。代碼如下:

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

以上就是關(guān)于STM32 LED閃爍程序的詳細(xì)介紹和代碼解析。通過這個(gè)程序框架,可以實(shí)現(xiàn)LED的閃爍效果。

標(biāo)簽: