Скачать Example2.zip

main.h

#ifndef MAIN_H
#define MAIN_H

#include "mcu_ini.h"
#include "stm32f4xx.h"

#define RED_ON()         GPIO_SetBits(GPIOD, GPIO_Pin_14);
#define RED_OFF()        GPIO_ResetBits(GPIOD, GPIO_Pin_14);
#define BLUE_ON()        GPIO_SetBits(GPIOD, GPIO_Pin_15);
#define BLUE_OFF()       GPIO_ResetBits(GPIOD, GPIO_Pin_15);
#define GREEN_ON()       GPIO_SetBits(GPIOD, GPIO_Pin_12);
#define GREEN_OFF()      GPIO_ResetBits(GPIOD, GPIO_Pin_12);
#define YELLOW_ON()      GPIO_SetBits(GPIOD, GPIO_Pin_13);
#define YELLOW_OFF()     GPIO_ResetBits(GPIOD, GPIO_Pin_13);
#define DELAY            5000

#endif

mcu_ini.h

#ifndef MCU_INI_H
#define MCU_INI_H

#include "stm32f4xx.h"

void LEDs_ini(void);

#endif

mcu_ini.c

#include "mcu_ini.h"

//---------------------------------------------
//
//---------------------------------------------
void LEDs_ini(void)
{
	GPIO_InitTypeDef GPIO_Init_LED;
	
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD,ENABLE);
	GPIO_Init_LED.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
	GPIO_Init_LED.GPIO_Mode = GPIO_Mode_OUT;
	GPIO_Init_LED.GPIO_Speed = GPIO_Speed_2MHz;
	GPIO_Init_LED.GPIO_OType = GPIO_OType_PP;
	GPIO_Init_LED.GPIO_PuPd = GPIO_PuPd_NOPULL;
	
	GPIO_Init(GPIOD, &GPIO_Init_LED);
}

main.c

#include "main.h"
#include "mcu_ini.h"

uint16_t delay_count = 0;

void SysTick_Handler(void) //1ms
{
	if(delay_count > 0)
	{
		delay_count--;
	}
}

void delay_ms(uint16_t delay_temp)
{
	delay_count = delay_temp;
	while(delay_count);
}

int main(void)
{
	LEDs_ini();
	SysTick_Config(SystemCoreClock/1000);
	while(1)
	{
		RED_ON();
		YELLOW_OFF();
		delay_ms(DELAY);
		RED_OFF();
		BLUE_ON();
		delay_ms(DELAY);
		BLUE_OFF();
		GREEN_ON();
		delay_ms(DELAY);
		GREEN_OFF();
		YELLOW_ON();
		delay_ms(DELAY);
	}
}