音频数据的Flash读取与DAC播放

本文详细介绍了如何基于STM32F103C8T6单片机,利用内部Flash存储音频数据并通过DAC播放。首先,通过Adobe Audition等软件处理音频文件,然后编程将8kHz采样、8bit量化编码的单声道音频写入Flash。接着,通过STM32的DAC通道,读取Flash中的数据转换为模拟音频播放,并进行了验证。文章涵盖了DAC的配置、Flash读取以及程序设计与调试过程。

一、内容简介

基于片内Flash的提示音播放程序。

1)实验数据准备:用Adobe audition或goldwave等音频编辑软件录制“您好欢迎光临!”的几秒钟的声音(8khz采样、8bit量化编码的单声道wav格式),确保音频数据尽量小(最大不超64KB)。然后编程将其分批次写入stm32f103c8t6芯片内部flash区域。

2)数字音频还原播放任务:编程读取此段音频,分别通过
stm32f103c8t6自带的DAC通道,转换为模拟音频进行播放,并用示波器观察波形,用耳机/喇叭收听,评判音乐还原效果;

提示:建议先用单音音频(比如2000Hz的正弦波)的wav数据进行实验,通过DAC或PCM音频模块能够基本还原出原始正弦波声音后,再用语音和音乐信号进行实验。

二、stm32的DAC播放与内部flash

1) 关于DAC

数字/模拟转换模块(DAC)是12位数字输入,电压输出的数字/模拟转换器。
DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。
DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+ 以获得更精确的转换结果。

DAC的主要特征:
  
●  2个DAC转换器:每个转换器对应1个输出通道

●  8位或者12位单调输出

●  12位模式下数据左对齐或者右对齐

●  双DAC通道同时或者分别转换

●  每个通道都有DMA功能

●  外部触发转换

●  输入参考电压VREF+

2) 关于flash

不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了 1024K 字节。市面上 STM32F1 开发板使用的芯片是 STM32F103系列,其 FLASH 容量一般为 512K 字节,属于大容量芯片。

STM32F1 的闪存(Flash)模块由:主存储器、信息块和闪存存储器接口寄存器等 3 部分组成。

下面我们就来介绍下这些组成部分:

①主存储器。该部分用来存放代码和数据常数(如 const 类型的数据)。对于大容量产品,其被划分为 256 页,每页 2K 字节。注意,小容量和中容量产品则每页只有 1K 字节。从上图可以看出主存储器的起始地址就是0X08000000, BOOT0、BOOT1 都接 GND 的时候,就是从 0X08000000 开始运行代码的。

②信息块。该部分分为 2 个小部分,其中启动程序代码,是用来存储 ST 自带的启动程序,用于串口下载代码,当

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值