久久精品国产99国产精品,农村大炕弄老女人,人马配速90分钟,香蕉成人伊视频在线观看

STM32 LED閃爍程序框架

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

下面介紹了一個基于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的閃爍效果。

標簽:
主站蜘蛛池模板: 锡林郭勒盟| 常德市| 乌鲁木齐市| 长海县| 黔江区| 英吉沙县| 德清县| 卢氏县| 蓝田县| 甘洛县| 新泰市| 麻江县| 宜黄县| 邛崃市| 新源县| 大悟县| 玉树县| 大理市| 综艺| 定襄县| 丹凤县| 山阳县| 砚山县| 夏邑县| 鹿邑县| 西昌市| 济南市| 北京市| 北流市| 广平县| 江陵县| 南投县| 阜宁县| 万宁市| 白玉县| 仁怀市| 玉林市| 双峰县| 绩溪县| 松原市| 石阡县|