完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
实验要求
用STM32F103的DAC功能完成以下波形输出,用示波器观察波形,并用蜂鸣器或手机耳机收听输出声音效果、感受歌曲的音质差异。 输出一个周期2khz的正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”的单音; 将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。 一、DAC简介 数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数字信号的器件。 STM32具有片上DAC外设,它的分辯率可配置为8位或12位的数字输入信号,具有两个DAC输出通道,这两个通道互不影响,每个通道都可以使用DMA功能,都具有出错检测能力,可外部触发。 DAC模块图如下: 二、输出一个周期2khz的正弦波 1、用Audition输出正弦波的单音频波形文件(.wav) 打开Audition软件,新建音频文件 指定采样频率、量化位数和通道数 MCU资源有限,建议采样频率8khz,8或16量化比特,单通道,1~2秒时长。 音频wav数据可以用类似汉字字模的保存方式,直接copy到Keil代码中数组中,不必使用SD卡上的wav文件(野火开发板是读取SD卡上的wav文件)。 生成基本音色(正弦波) 另存为wav文件 用UltraEdit打开前面生成的wav文件,前面的一段是固定格式 快捷键CTRL+A后,点击鼠标右键选择十六进制复制选定视图 新建文件,粘贴 我们想要的只是中间的那一块内容,找到最下面那个字节,鼠标右键 选择范围 输入起始的行号和列号 确定就选中了整个我们需要的内容 再次复制粘贴,建立新文件并保存 用Notepad++等文本编辑软件在十六进制之前添加0x,点击编辑—》列块编辑,按列块插入0x和, 每列重复操作 这样就准备好了我们要的音频文件 2、 输出波形 示例程序采用于野火的STM32F103指南者DAC输出正弦波的示例程序 将前面生成的音频文件复制粘贴到 uint16_t Sine12bit 数组中 将程序烧录到板子中,将板子与示波器连接观察输出波形 (使用开发板的DAC输出通道PA4和PA5这两个引脚来观测输出的波形,选其一即可) 用耳机或者喇叭接到PA4脚就可以听到声音了,可以听到很长的“滴”的声音。 三、将一段数字音频歌曲数据转换为模拟音频波形输出 1、用Audition输出wav文件 用Audition打开一段音乐 剪切时长为5~10秒 鼠标右键选中裁剪区,另存为wav文件 采样类型改为:采样频率8khz,量化16bit,单通道 2、输出波形 按照上面相同的步骤生成相应的十六进制数组,并复制粘贴到示例代码对应的地方,编译运行 将程序烧录到板子上,用示波器连接PA4引脚,观察输出波形 用耳机或者喇叭接到PA4脚就可以听到音乐了。 四、总结 以上即为基于STM32的DAC功能输出WAV音频波形的实验内容。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1752 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1611 浏览 1 评论
1052 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1666 浏览 2 评论
1926浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
711浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
560浏览 3评论
583浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
544浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 16:21 , Processed in 0.814613 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号