Переработка оригинального проекта от STMicroelectronics.

Дмитрий16 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
22.07.2021

Техническое задание.

Переработка оригинального проекта от 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, чтобы можно было добавлять периферию по мере

необходимости.