X-CUBE-USB-AUDIO 资料篇⑩——stm32446e_eval_audio_ex驱动的使用

145 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情

一、字段的定义

  • AUDIO_SAIx_DMAx_PERIPH_DATA_SIZEAUDIO_SAIx_DMAx_MEM_DATA_SIZE:修改为支持24位(带填充的32位)
  • AUDIO_OUT_IRQ_PREPRIOAUDIO_IN_IRQ_PREPRIO:确定音频中断的优先级
  • DEFAULT_AUDIO_IN_FREQ :在DEFAULT_AUDIO_IN_MAX_FREQ 范围内动态的改变频率
  • INTERNAL_BUFF_SIZE:固定
  • BSP_AUDIO_IN_ClockConfig:添加了支持音频输出时钟设置的函数
  • BSP_AUDIO_IN_PDMToPCM:更改为支持可变频率(16 khz或48 khz))

二、如何使用该驱动

2.1 BSP_AUDIO_OUT_Init_Ext

BSP_AUDIO_OUT_Init_Ext(uint16_t OutputDevice, uint8_t Volume, uint32_t AudioFreq, uint8_t AudioResolution) 音频输出初始化

传参:

  • OutputDevice:物理输出模式(扬声器、耳机、两者同时被使用)
  • Volume:音量(0是最小,100是最大)
  • AudioFreq:音频频率(8000Hz,16000Hz,22500Hz,32000Hz...),这个参数与音频文件/流的类型哟管
  • Resolution:音频采样分辨率

返回值:

  • 成功:AUDIO_OK
  • 失败:非AUDIO_OK,这时功能会被卡住,则与编解码器或MFX的通信失败(在这种情况下,请尝试拔下电源插头或重置设备)

注意: SAI_DMA以循环模式配置。因此,应用程序不需要调用BSP_AUDIO_OUT_ChangeBuffer()来确保流式传输。

2.2 BSP_EVAL_AUDIO_OUT_Play

BSP_AUDIO_OUT_Play(uint16_t* pBuffer, uint32_t Size) 从音频文件/流开始播放(第一次)。

传参:

  • pBuffer:指向音频数据文件地址的指针
  • Size:要发送的缓冲区大小(以字节为单位)

2.3 BSP_AUDIO_OUT_Pause

暂停播放

2.4 BSP_AUDIO_OUT_Resume

恢复播放