Переработка оригинального проекта от STMicroelectronics.
Техническое задание.
Переработка оригинального проекта от ST.
Используемое ПО:
STM32CubeMX, Keil mVision.
Исходные данные оригинального проекта:
https://github.com/STMicroelectronics/STM32CubeF4
Каталог оригинального проекта:
STM32CubeF4-master\Projects\STM32F4-Discovery\Examples\BSP
Тестовая плата:
С контроллером STM32F407VGT6
Цель:
Убрать из проекта всё, что касается светодиодов, акселерометра
и МЕМС микрофона. Оставить только
обработку сырых WAV аудио. Добавить в проект SD карту Fat32. Научить проект проигрывать файлы, которые лежат на SD карте. Выбор файла для воспроизведения — по имени.
Переработать обработчик воспроизведения так, чтобы
можно было в процессе воспроизведения
файла останавливать воспроизведение.
Остановить воспроизведение — значит
прекратить использование текущего
файла, который воспроизводится. Это
значит освободить файл. Это не пауза.
Это именно СТОП. И после этого ожидать
новой команды воспроизведения.
Автомат (не блокирующий) для работы со звуковыми
файлами должен располагаться в блоке
main().
int main(void)
{
HAL_Init();
SystemClock_Config();
init_all_periph();
stopFlag=0; //управляющий сигнал СТОП
currFile=""; // Имя текущего аудио
playAvtomat=0; //Установить извне в 1 для начала воспроизведения
while(1)
{
if (playAvtomat==1)
{
openPlayFile(currFile);
playAvtomat=2;
}
else if (playAvtomat==2)
{
startPlayFile(currFile);
playAvtomat=3;
}
else if (playAvtomat==3)
{
if (stopFlag==1);
{
playAvtomat=100;
}
else
{
continuePlayFile(currFile);
}
}
else if (playAvtomat==100)
{
stopFlag=0;
playAvtomat=0;
stopPlayFile(currFile);
currFile="";
}
{
//Мой код
}
}
}
Оригинальный проект компилируется нормально. Звуковой
файл воспроизводится как положено. Все
действия с исходными данными согласно
файла:
STM32F4-Discovery\Examples\BSP\readme.txt
Работающий проект на выходе — это обязательно
связка Cube+Keil, чтобы можно было добавлять периферию по мере
необходимости.