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 includevoid 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的閃爍效果。