随笔(1)STM32F4——音频播放器

 1.实验平台

    STM32F4 ==》I2S(全双工) 《== WM8978

2.实验目的

    实现录音和音频播放

3.多媒体知识储备

    播放网络视频数据的流程

    解协议,解封装,解码视音频,视音频同步

HTTP/RTMP =》解协议后 =》MP4/FLV =》解封装 =》视频流(H.264)音频流(AAC) =》解码后 =》视频(RGB/YUV420) 音频(PCM)

    <1>WAV简介

      符合RIFF文件规范  PCM编码(脉冲编码调制)采样频率44.1k、16位量化数字 由若干Chunk组成

    RIFF WAVE Chunk\Format Chunk\Fact Chunk\Data Chunk

    每一个Chunk组成如下:块标识符(4bytes)\数据大小(4bytes)\数据

    如RIFF块:"RIFF"/wav文件大小(总大小-8bytes)/"WAVE"

    如Format块:"fmt "/size(20)/音频格式、通道数、采样率、字节速率等参数

    如fact块:这是可选块 在非PCM格式的文件中会有

    如data块:这才是PCM编码的WAV数据存放的地方

   

4.关于WM8978音频处理器

    通过I2S接口和MCU进行音频数据的传输 将得到的wav数据(PCM编码)丢给WM8978(codec)即可播放声音

    I2S(飞利浦)标准:



LRC 的频率就是音频数据的采样率 1fs

MCLK 由MCU提供,频率必须等于音频采样率的256倍,即256fs

WM8978的内部结构框图(通道开关):

 

5.STM32F4的I2S总线接口

   类别其他如UART总线,大概会有什么组成部分?

   发送缓存区  接收缓存区 时钟发生器 通信控制器


6.软件实现流程

1)初始化WM8978 :配置相关寄存器

2)初始化I2S :

3)解析WAV文件,获取音频信号采样率和位数并设置I2S时钟分频率

4)设置DMA

5)编写DMA传输完成中断服务函数

6) 开启DMA 传输,填充数据

发布了2 篇原创文章 · 获赞 4 · 访问量 4205
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览