Гудвин, волшебник (07.01.2013 06:08, просмотров: 200) ответил дмитрий на уже раз спрашивал, и вот еще раз на оф саите для STM32F4-Discovery есть пример Audio_Player_Recorder ,для "Кеила" по умолчанию опредеено как MEDIA_USB_KEY даже название в проекте такое фигурирует ,если переопределить в свойствах
Млять, исполоскали мой ник :) "Мопед хеликс не мой, я только разместил объяву"(c). Кстати, в исходниках декодера хеликса прибил баг (встретился в некоторых MP3 файликах): } else {
/* out of data - assume last or truncated frame */
/// oleg. // привел к unsigned int чтобы не возникал hard fault ////////////////////////
if ((unsigned int)mp3DecInfo->nSlots > *bytesLeft) {
MP3ClearBadFrame(mp3DecInfo, outbuf);
return ERR_MP3_INDATA_UNDERFLOW;
}
Ну и еще несколько моментов:
Во всех этих демках как правило предполагается, что используется "рафинированный" MP3 c семплрейтом 44100, посему для реальных файлов надо обязательно анализировать наличие MP3 тега V2, который как правило висит в начале файла. Он может быть весьма большим (картинки и пр.). Его надо пропустить самостоятельно. Виду того, что для большого буфера чтения с диска в кристаллах (в частности LPC17) остается маловато места, приходится "вручную" помогать обнаружить первый MP3 фрейм, иначе родной библиотечный "синхронизатор" может зависнуть навечно. А еще и семплрейт в MP3 может "внезапно" оказаться не 44100. Это надо тоже отслеживать, как и "моно/стерео".
Впрочем, я делал махарайку на UDA1334, посему последнее может только мне было актуально... Кстати, звук с нее субъективно показался лучше, чем с кодека STM32F4Discovery.
Ну а еще хорошо прикрутить хотя бы простенький цифровой регулируемый режекторный фильтр для средних частот - на хреновеньких записях оказывается не лишним. Для LPC17 обработка выходного стереобуфера занимает всего 3 мс при тактовой 72 МГц.