// #include <libopencm3/stm32/gpio.h>
// #include <libopencm3/stm32/rcc.h>
#include <string.h>
#include "core/system.h"
#include "ws2812b.h"
#define LED_PORT (GPIOC)
#define LED_PIN (GPIO14)
static void gpio_setup(void) {
rcc_periph_clock_enable(RCC_GPIOC);
gpio_mode_setup(LED_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LED_PIN);
gpio_set_output_options(LED_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_2MHZ, LED_PIN);
}
int main(void) {
system_setup();
gpio_setup();
RGB_t leds[8] = {0};
WS2812B_t ws2812b = {
.leds = leds,
.num_leds = 8,
.pin = GPIO8,
.port = GPIOC
};
uint64_t start_time = system_get_ticks();
uint8_t current_led = 0;
while (1) {
if (system_get_ticks() - start_time >= 250) {
memset(&leds[current_led], 0, sizeof(RGB_t));
current_led = (current_led + 1) % ws2812b.num_leds;
leds[current_led].r = 255;
WS2812B_Write(&ws2812b);
start_time = system_get_ticks();
}
}
return 0;
}
#include <libopencm3/cm3/common.h>
#include <libopencm3/stm32/memorymap.h>
#if defined(STM32F0)
# include <libopencm3/stm32/f0/gpio.h>
#elif defined(STM32F1)
# include <libopencm3/stm32/f1/gpio.h>
#elif defined(STM32F2)
# include <libopencm3/stm32/f2/gpio.h>
#elif defined(STM32F3)
# include <libopencm3/stm32/f3/gpio.h>
#elif defined(STM32F4)
# include <libopencm3/stm32/f4/gpio.h>
#elif defined(STM32F7)
# include <libopencm3/stm32/f7/gpio.h>
#elif defined(STM32L0)
# include <libopencm3/stm32/l0/gpio.h>
#elif defined(STM32L1)
# include <libopencm3/stm32/l1/gpio.h>
#elif defined(STM32L4)
# include <libopencm3/stm32/l4/gpio.h>
#elif defined(STM32G0)
# include <libopencm3/stm32/g0/gpio.h>
#elif defined(STM32G4)
# include <libopencm3/stm32/g4/gpio.h>
#elif defined(STM32H7)
# include <libopencm3/stm32/h7/gpio.h>
#elif defined(GD32F1X0)
# include <libopencm3/gd32/f1x0/gpio.h>
#else
# error "stm32 family not defined."
#endif
#if defined(STM32F0)
# include <libopencm3/stm32/f0/rcc.h>
#elif defined(STM32F1)
# include <libopencm3/stm32/f1/rcc.h>
#elif defined(STM32F2)
# include <libopencm3/stm32/f2/rcc.h>
#elif defined(STM32F3)
# include <libopencm3/stm32/f3/rcc.h>
#elif defined(STM32F4)
# include <libopencm3/stm32/f4/rcc.h>
#elif defined(STM32F7)
# include <libopencm3/stm32/f7/rcc.h>
#elif defined(STM32L0)
# include <libopencm3/stm32/l0/rcc.h>
#elif defined(STM32L1)
# include <libopencm3/stm32/l1/rcc.h>
#elif defined(STM32L4)
# include <libopencm3/stm32/l4/rcc.h>
#elif defined(STM32G0)
# include <libopencm3/stm32/g0/rcc.h>
#elif defined(STM32G4)
# include <libopencm3/stm32/g4/rcc.h>
#elif defined(STM32H7)
# include <libopencm3/stm32/h7/rcc.h>
#elif defined(GD32F1X0)
# include <libopencm3/gd32/f1x0/rcc.h>
#else
# error "stm32 family not defined."
#endif
Loading
st-nucleo-c031c6
st-nucleo-c031c6