STM Урок 48. USB DEVICE AUDIO. Часть 3

 

 

 

Урок 48

 

Часть 3

 

USB DEVICE AUDIO

 

Предыдущая часть Программирование МК STM32 Следующий урок

 

 

 

В прошлой части нашего урока мы написали ещё несколько функций и подключили их в обработчики команд драйвера звуковой карты.

Вставим ещё одну функцию в файл audioplay.c

 

//——————————————————

uint8_t AudioPlay_SetVolume(uint8_t Volume)

{

  uint8_t ret = AUDIO_OK;

  /* Call the codec volume control function with converted volume value */

  if(cs43l22_SetVolume(AUDIO_I2C_ADDRESS, Volume) != 0)

  {

    ret =  AUDIO_ERROR;

  }

  /* Return AUDIO_OK when all operations are correctly done */

  return ret;

}

//——————————————————

 

Вставим прототип данной функции в файл audioplay.h

 

void AudioPlay_ChangeBuffer(uint16_t *pData, uint16_t Size);

uint8_t AudioPlay_SetVolume(uint8_t Volume);

В файле usbd_audio_if.c в обработчике AUDIO_VolumeCtl_FS вызовем эту функцию

static int8_t AUDIO_VolumeCtl_FS (uint8_t vol)

{

  /* USER CODE BEGIN 3 */

  AudioPlay_SetVolume(vol);

  return (USBD_OK);

  /* USER CODE END 3 */

}

 

Вставим ещё одну функцию в файл audioplay.c

 

//——————————————————

uint8_t AudioPlay_SetMute(uint32_t Cmd)

{

  uint8_t ret = AUDIO_OK;

  /* Call the Codec Mute function */

  if(cs43l22_SetMute(AUDIO_I2C_ADDRESS, Cmd) != 0)

  {

    ret = AUDIO_ERROR;

  }

  /* Return AUDIO_OK when all operations are correctly done */

  return ret;        

}

//——————————————————

 

Напишем для нее прототип

 

uint8_t AudioPlay_SetVolume(uint8_t Volume);

uint8_t AudioPlay_SetMute(uint32_t Cmd);

 

 

Вставим вызов функции в файле usbd_audio_if.c в одноименный обработчик

 

static int8_t AUDIO_MuteCtl_FS (uint8_t cmd)

{

  /* USER CODE BEGIN 4 */

  AudioPlay_SetMute(cmd);

  return (USBD_OK);

  /* USER CODE END 4 */

}

 

В файле audioplay.c в обработчиках добавим вызовы данных обработчиков в библиотеке USB

 

//——————————————————

void AudioPlay_HalfTransfer_Callback(void)

{

        HalfTransfer_CallBack_FS();

}

//——————————————————

void AudioPlay_TransferComplete_CallBack(void)

{

        TransferComplete_CallBack_FS();

}

 

Соберем проект и прошьем контроллер.

Также после прошивки желательно зайти в параметры устройств воспроизведения и установить данное устройство по умолчанию

 

image10

 

Предыдущая часть Программирование МК STM32 Следующий урок

 

Исходный код

 

 

Техническая документация на Аудио ЦАП CS43L22

 

 

Купить отладочную плату можно здесь STM32F4-DISCOVERY

 

 

Смотреть ВИДЕОУРОК

 

STM32 USB DEVICE AUDIO

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*