=0; ticks--); } void led_blue() { GPIOD->ODR ^= GPIO_ODR_OD15; } void led_red() { GPIOD->ODR ^= GPIO_ODR_OD14; } void led_orange() { GPIOD->ODR ^= GPIO_ODR_OD13; } void led_green() { GPIOD->ODR ^= GPIO_ODR_OD12; } void setup(void) { RCC -> AHB1ENR |= RCC_AHB1ENR_GPIODEN; // Enable output on D port GPIOD -> MODER |= GPIO_MODER_MODER15_0; GPIOD -> MODER |= GPIO_MODER_MODER14_0; GPIOD -> MODER |= GPIO_MODER_MODER13_0; GPIOD -> MODER |= GPIO_MODER_MODER12_0; } void loop(void) { led_blue(); wait(250); led_red(); wait(250); led_orange(); wait(250); led_green(); wait(250); } int main(void) { setup(); while(1) { loop(); } return 0; }"> =0; ticks--); } void led_blue() { GPIOD->ODR ^= GPIO_ODR_OD15; } void led_red() { GPIOD->ODR ^= GPIO_ODR_OD14; } void led_orange() { GPIOD->ODR ^= GPIO_ODR_OD13; } void led_green() { GPIOD->ODR ^= GPIO_ODR_OD12; } void setup(void) { RCC -> AHB1ENR |= RCC_AHB1ENR_GPIODEN; // Enable output on D port GPIOD -> MODER |= GPIO_MODER_MODER15_0; GPIOD -> MODER |= GPIO_MODER_MODER14_0; GPIOD -> MODER |= GPIO_MODER_MODER13_0; GPIOD -> MODER |= GPIO_MODER_MODER12_0; } void loop(void) { led_blue(); wait(250); led_red(); wait(250); led_orange(); wait(250); led_green(); wait(250); } int main(void) { setup(); while(1) { loop(); } return 0; }"> =0; ticks--); } void led_blue() { GPIOD->ODR ^= GPIO_ODR_OD15; } void led_red() { GPIOD->ODR ^= GPIO_ODR_OD14; } void led_orange() { GPIOD->ODR ^= GPIO_ODR_OD13; } void led_green() { GPIOD->ODR ^= GPIO_ODR_OD12; } void setup(void) { RCC -> AHB1ENR |= RCC_AHB1ENR_GPIODEN; // Enable output on D port GPIOD -> MODER |= GPIO_MODER_MODER15_0; GPIOD -> MODER |= GPIO_MODER_MODER14_0; GPIOD -> MODER |= GPIO_MODER_MODER13_0; GPIOD -> MODER |= GPIO_MODER_MODER12_0; } void loop(void) { led_blue(); wait(250); led_red(); wait(250); led_orange(); wait(250); led_green(); wait(250); } int main(void) { setup(); while(1) { loop(); } return 0; }">
/* Juliusz Tarnowski */
#include "stm32f4xx.h"

void wait(int ticks) { for(; ticks>=0; ticks--); }

void led_blue()   { GPIOD->ODR ^= GPIO_ODR_OD15; }
void led_red()    { GPIOD->ODR ^= GPIO_ODR_OD14; }
void led_orange() { GPIOD->ODR ^= GPIO_ODR_OD13; }
void led_green()  { GPIOD->ODR ^= GPIO_ODR_OD12; }

void setup(void) 
{
  RCC -> AHB1ENR |= RCC_AHB1ENR_GPIODEN; // Enable output on D port
  GPIOD -> MODER |= GPIO_MODER_MODER15_0;  
  GPIOD -> MODER |= GPIO_MODER_MODER14_0;  
  GPIOD -> MODER |= GPIO_MODER_MODER13_0;  
  GPIOD -> MODER |= GPIO_MODER_MODER12_0; 
}

void loop(void) 
{
  led_blue();   wait(250);
  led_red();    wait(250);
  led_orange(); wait(250);
  led_green();  wait(250);
}

int main(void) 
{
  setup();
  while(1) 
  {
    loop();
  }
  return 0;
}

STM32F469

/* Juliusz Tarnowski */
#include "stm32f4xx.h"

void wait(int ticks) { for(; ticks>=0; ticks--); }

void led_green()  { GPIOG->ODR ^= GPIO_ODR_OD6; }
void led_orange() { GPIOD->ODR ^= GPIO_ODR_OD4; }
void led_red()    { GPIOD->ODR ^= GPIO_ODR_OD5; }
void led_blue()   { GPIOK->ODR ^= GPIO_ODR_OD3; }

void setup(void) 
{
  RCC -> AHB1ENR |= RCC_AHB1ENR_GPIOGEN; // Enable output on G port
  RCC -> AHB1ENR |= RCC_AHB1ENR_GPIODEN; // Enable output on D port
  RCC -> AHB1ENR |= RCC_AHB1ENR_GPIOKEN; // Enable output on K port
  GPIOG -> MODER |= GPIO_MODER_MODER6_0;  
  GPIOD -> MODER |= GPIO_MODER_MODER4_0;  
  GPIOD -> MODER |= GPIO_MODER_MODER5_0;  
  GPIOK -> MODER |= GPIO_MODER_MODER3_0; 
}

void loop(void) 
{
  led_green();  wait(0x1fffff);
  led_orange(); wait(0x1fffff);
  led_red();    wait(0x1fffff);
  led_blue();   wait(0x1fffff);
}

int main(void) 
{
  setup();
  while(1) 
  {
    loop();
  }
  return 0;
}