1 #include <libopencm3/cm3/systick.h>
2 #include <libopencm3/stm32/rcc.h>
3 #include <libopencm3/stm32/gpio.h>
5 static void delay_ms(unsigned int ms)
8 for (unsigned int i=0; i<ms; i++)
9 while (!systick_get_countflag())
15 rcc_clock_setup_in_hse_8mhz_out_72mhz();
16 rcc_periph_clock_enable(RCC_GPIOA);
17 rcc_periph_clock_enable(RCC_GPIOC);
19 // PC13 = BluePill LED
20 gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO13);
23 gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO0);
24 gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
25 gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO2);
26 gpio_clear(GPIOA, GPIO0);
27 gpio_clear(GPIOA, GPIO1);
28 gpio_clear(GPIOA, GPIO2);
30 systick_set_clocksource(STK_CSR_CLKSOURCE_AHB);
31 systick_set_reload(71999);
32 systick_counter_enable();
35 gpio_set(GPIOA, GPIO0);
37 gpio_clear(GPIOA, GPIO0);
39 gpio_set(GPIOA, GPIO1);
41 gpio_clear(GPIOA, GPIO1);
43 gpio_set(GPIOA, GPIO2);
45 gpio_clear(GPIOA, GPIO2);
47 gpio_clear(GPIOC, GPIO13);
49 gpio_set(GPIOC, GPIO13);