Читай "от простых к более сложным, как в ардуино-примерах". Хотя думаю там есть и примеры, которые задолбаешься сам с нуля писать без чужих либ.
Чужими рабочими либами проверяю гипотезы, потом пишу сам как мне надо.
Последний пример:
светодиодная лента на сдвиговых регистрах ws2812b. Чужими либами отладил логику приложения, затем всё с нуля переписал, т.к. в каждой из них было то, что меня не устраивало. Например, никто из них не мог управлять лентой не ногодрыганием 800кгц, а через spi, т.е. hardware flow