Похоже на лаборатору какую-то.
Расскажу, как это делал я, дело было 10+ лет назад. Контроллер был AVR, но сути дела это не меняет.
Я учился, старался дойти до сути своей головой, а не делать фигакпродакшн. Сначала я раздобыл дисплей WS1602. Это знакосинтезирующий дисплей, то есть, в него надо посылать коды символов, которые он нарисует на экране. Я раздобыл даташит на него, в котором были перечислены последовательности сигналов для управления дисплеем.
Так как программу проще отлаживать на взрослом компе, я написал развесистую кучу абстракций на C++, которая отправляла байты в LPT порт, к которому был прицеплен дисплей. Так у меня появилось понимание, как управлять дисплеем и надежно работающий стенд.
Потом тот же код я откомпилировал под AVR, благо там были шаблоны и бинарный код был легковесен - и получил работающий дисплей с микроконтроллером.
Проект был аналогичный - анализатор спектра звукового сигнала + цветомузыка, но на AVR, до 16 кГц.
Точно также, я использовал БПФ - для того, чтобы не считать половину преобразования впустую (спектр мощности действительного сигнала будет симметричен относительно своей середины), я применил трюк - сразу при съеме с АЦП домножал отсчеты на доворачивающие множители, что позволило мне сэкономить память и вычисления двухкратно. Ну и использовал арифметику с фиксированной точкой, чтобы уложиться в нужное количество тактов между съемами с АЦП - пока заполняется очередное окно БПФ, контроллер должен был обсчитать предыдущее и выдать его на экран.
Потом был процесс отладки - я нашел программу - генератор синусоидальных сигналов, отдавал их на свою поделку и смотрел на экран - появляется ли в нужном месте палка, движется ли она при качании частоты генератора.
На все про все у меня ушло два интереснейших месяца.
Я думаю, вы можете либо пойти тем же путем, либо нагуглить нужные библиотеки и собрать их в кучу - но не факт, что это будет работать, и при том верно.