Подключал адресный диод к STM32G0 , случайно сочинил мини либу. У меня она просто лежать будет, может кому пригодится.
По идее на всех нулевых линейках STM должна работать. Сам только прикрутил, пока не очень уверен в стабильности.
Надо
В Си объявить:
использовать
ну или как-то похитрее
По идее на всех нулевых линейках STM должна работать. Сам только прикрутил, пока не очень уверен в стабильности.
Надо
- закинуть исходник дерево проекта
- .txt из названия файла - убрать
- прописать в первой строке частоту (16 32 64)
В Си объявить:
C++:
extern void ws2812_send(uint32_t gpio, uint32_t pin, uint32_t color);
C++:
__disable_irq();
for(size_t n=0; n<leds_count; n++) ws2812_send(GPIOA, pin , color);
__enable_irq();
C++:
void leds_send_(uint32_t (*fun)())
{
__disable_irq();
for(size_t n=0; n<leds_count; n++) ws2812_send(GPIOA, GPIO_PIN_3 , fun());
__enable_irq();
}
void leds_rand()
{
static const uint32_t colors[4]={0xFF,0xFF00,0xFF0000};
uint32_t fun() {
return colors[rand()%3];
}
leds_send_(fun);
HAL_Delay(30);
}
Вложения
-
1.5 KB Просмотры: 4