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

随笔 专栏收录该内容
0 篇文章 0 订阅

 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 传输,填充数据

  • 3
    点赞
  • 1
    评论
  • 20
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值