1 #include <libopencm3/stm32/rcc.h>
2 #include <libopencm3/stm32/gpio.h>
6 rcc_clock_setup_in_hse_8mhz_out_72mhz();
7 rcc_periph_clock_enable(RCC_GPIOA);
8 rcc_periph_clock_enable(RCC_GPIOC);
10 // PC13 = BluePill LED
11 gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO13);
14 gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO0);
15 gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
16 gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_50_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO2);
18 // PA3 = button (pull-up)
19 gpio_set_mode(GPIOA, GPIO_MODE_INPUT, GPIO_CNF_INPUT_PULL_UPDOWN, GPIO3);
20 gpio_set(GPIOA, GPIO3);
23 if (gpio_get(GPIOA, GPIO3))
24 gpio_set(GPIOA, GPIO0 | GPIO1 | GPIO2);
26 gpio_clear(GPIOA, GPIO0 | GPIO1 | GPIO2);