持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情
一、字段的定义
AUDIO_SAIx_DMAx_PERIPH_DATA_SIZE
和AUDIO_SAIx_DMAx_MEM_DATA_SIZE
:修改为支持24位(带填充的32位)AUDIO_OUT_IRQ_PREPRIO
和AUDIO_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
恢复播放