HAL库实现LED灯闪烁

led.h

#ifndef _LED_H
#define _LED_H

#include "stm32f4xx.h"
#include "delay.h"

//RED
#define LED_RED_GPIO_PORT    GPIOB
#define LED_RED_PIN          GPIO_PIN_1

//GREEN
#define LED_GREEN_GPIO_PORT  GPIOB
#define LED_GREEN_PIN        GPIO_PIN_0

//RED_ON,OFF
#define LED_RED_ON    HAL_GPIO_WritePin(LED_RED_GPIO_PORT,LED_RED_PIN,GPIO_PIN_RESET);
#define LED_RED_OFF   HAL_GPIO_WritePin(LED_RED_GPIO_PORT,LED_RED_PIN,GPIO_PIN_SET);

//GREEN_ON,OFF
#define LED_GREEN_ON    HAL_GPIO_WritePin(LED_GREEN_GPIO_PORT,LED_GREEN_PIN,GPIO_PIN_RESET);
#define LED_GREEN_OFF   HAL_GPIO_WritePin(LED_GREEN_GPIO_PORT,LED_GREEN_PIN,GPIO_PIN_SET);

//RED_Blinker
#define LED_RED_Blinker LED_RED_ON;
                        delay_ms(500);
                                                LED_RED_OFF;
                                                delay_ms(500);

//GREEN_Blinker
#define LED_GREEN_Blinker LED_GREEN_ON;
                                                     delay_ms(500);
                           LED_GREEN_OFF;
                                                     delay_ms(500);
                                                     
//RED_GREEN_Blinker
#define LED_RED_GREEN_Blinker LED_RED_ON;
                                                          delay_ms(500);
                                                            LED_RED_OFF;
                                                            LED_GREEN_ON;
                                                            delay_ms(500);
                                                            LED_GREEN_OFF;
                                                        
void LED_Init(void);                                                    
#endif

led.c

#include "led.h"

void LED_Init()
{
    GPIO_InitTypeDef LED_GPIO_InitStructure;
    
    __HAL_RCC_GPIOB_CLK_ENABLE();   //led.cÎļþÖÐÓëΨһµÄ²»Í¬ÊÇʱÖÓʹÄÜÄظö²»Ò»Ñù

    //RED_Config
    LED_GPIO_InitStructure.Pin=LED_RED_PIN;
    LED_GPIO_InitStructure.Mode=GPIO_MODE_OUTPUT_PP;
    LED_GPIO_InitStructure.Pull=GPIO_PULLUP;
    LED_GPIO_InitStructure.Speed=GPIO_SPEED_FREQ_VERY_HIGH;
    HAL_GPIO_Init(LED_RED_GPIO_PORT,&LED_GPIO_InitStructure);
    
    //GREEN_Config
    LED_GPIO_InitStructure.Pin=LED_GREEN_PIN;
    HAL_GPIO_Init(LED_GREEN_GPIO_PORT,&LED_GPIO_InitStructure);
    
    LED_RED_OFF;
    LED_GREEN_OFF;
}

main

 

#include "led.h"

int main(void)
{
    HAL_Init();                     
    Stm32_Clock_Init(360,25,2,8);   
    delay_init(180);                
    LED_Init();                     
    
    while(1)
    {
        LED_RED_GREEN_Blinker;
    }
}
原文地址:https://www.cnblogs.com/CaiFengYuanXing/p/13624014.html