最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【STM32F429單片機(jī)學(xué)習(xí)】單片機(jī)學(xué)習(xí)之LED跑馬燈實(shí)驗(yàn)

2023-04-02 19:14 作者:PID的橘子  | 我要投稿

LED跑馬燈實(shí)驗(yàn)文件組成

一、LED.c(GPIO口的初始化、LED燈的基本功能)

分析代碼(顏色一樣的為一步)

首先引入頭文件

#include "led.h"?

引入了頭文件的一些聲明變量后 ,定義LED初始化其實(shí)就是初始化GPIO口+LED的基本功能?

void LED_Init(void)
{

定義一個(gè)結(jié)構(gòu)體,后續(xù)當(dāng)HAL庫函數(shù)初始化GPIO中的參數(shù)(函數(shù)的傳參要求)

??? GPIO_InitTypeDef GPIO_Initure;


使用任何IO口都要打開其時(shí)鐘,此代碼為打開B這個(gè)一群IO的時(shí)鐘

??? __HAL_RCC_GPIOB_CLK_ENABLE();?????????? //開啟GPIOB時(shí)鐘
?在時(shí)鐘打開后,我們要接下來要對IO口的輸出模式、速度等進(jìn)行設(shè)定
??? GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_1; //PB1,0
??? GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;? //推挽輸出
??? GPIO_Initure.Pull=GPIO_PULLUP;????????? //上拉
??? GPIO_Initure.Speed=GPIO_SPEED_HIGH;???? //高速

??? HAL_GPIO_Init(GPIOB,&GPIO_Initure);


??? 對LED功能進(jìn)行簡單設(shè)置,其實(shí)就給IO配置高低電平,HAL_GPIO_WritePin與HAL_GPIO_ReadPin相對,一個(gè)是寫 一個(gè)是讀取,此函數(shù)需要三個(gè)參數(shù),前兩個(gè)為指針型的表示哪個(gè)IO口,然后次IO口的第幾個(gè),最后一個(gè)有兩種狀態(tài)分別是set reset表示高與低

?? HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);?? ?//PB0置1,默認(rèn)初始化后燈滅
??? HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);?? ?//PB1置1,默認(rèn)初始化后燈滅

}

注:燈不一定高電平有效 也不一定低電平有效 還是需要看怎么接的 到底是上拉 還是下拉

二、LED.h(聲明)

.h的保護(hù)代碼,目的是讓.h文件包含一次,防止編譯報(bào)錯

#ifndef _LED_H
#define _LED_H
#include "sys.h"

定義宏 讓PBOUT的值傳遞給LED0與1
#define LED0 PBout(1)?? //LED0
#define LED1 PBout(0)?? //LED1

聲明.c文件中的函數(shù)
void LED_Init(void);

#endif
三、main.c(主函數(shù))

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"

定義主函數(shù)
int main(void)
{?

在主函數(shù)中調(diào)用你需要的函數(shù)(函數(shù)從.c文件定義,.h文件聲明)

??? HAL_Init();???????????????????? //初始化HAL庫? ?
??? Stm32_Clock_Init(360,25,2,8);?? //設(shè)置時(shí)鐘,180Mhz
??? delay_init(180);??????????????? //初始化延時(shí)函數(shù)
??? LED_Init();???????????????????? //初始化LED ?

構(gòu)造一個(gè)死循環(huán)

??? while(1)
?? ?{

通過HAL_GPIO_WritePin對I配置電平,來到LED一閃一滅的功能

? HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET); //LED0對應(yīng)引腳PB1拉低,亮,等同于LED0(0)
??????? HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);?? //LED1對應(yīng)引腳PB0拉高,滅,等同于LED1(1)
??????? delay_ms(500);?? ??? ??? ??? ??? ??? ??? ??? ??? ??? ?//延時(shí)500ms
??????? HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET);?? //LED0對應(yīng)引腳PB1拉高,滅,等同于LED0(1)
??????? HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET); //LED1對應(yīng)引腳PB0拉低,亮,等同于LED1(0)
??????? delay_ms(500);????????????

?? ? }
?}?? ?









【STM32F429單片機(jī)學(xué)習(xí)】單片機(jī)學(xué)習(xí)之LED跑馬燈實(shí)驗(yàn)的評論 (共 條)

分享到微博請遵守國家法律
孟州市| 广州市| 东台市| 富源县| 克东县| 区。| 营口市| 江陵县| 灵武市| 濮阳市| 任丘市| 云和县| 巨野县| 九寨沟县| 尖扎县| 论坛| 大同市| 梨树县| 南昌县| 绥宁县| 白朗县| 申扎县| 金塔县| 门头沟区| 晋中市| 宁晋县| 鹿泉市| 丹棱县| 怀化市| 新宁县| 林州市| 红桥区| 志丹县| 邢台县| 庆云县| 油尖旺区| 嘉黎县| 襄城县| 饶平县| 临邑县| 察雅县|