完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文内容:用 STM32F103 的 DAC 功能完成以下波形输出,用示波器观察波形,并用蜂鸣器或手机耳机收听输出声音效果、感受歌曲的音质差异。
1)输出一个周期 2khz 的正弦波(循环)(此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”的单音); 2)将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。 提示:首先用音频制作工具如 audition 制作一段数字化的 2khz 正弦波 wav 文件,制作时须指定采样频率、量化位数和通道数,以及时间长度。MCU 资源有限,建议采样 8khz ,量化 16bit ,单通道,时长仅仅 2 秒左右。音频 wav 数据可以用类似汉字字模的保存方式,直接 copy 到 Keil 代码中数组中,不必使用SD卡上的 wav 文件(野火开发板是读取SD卡上的 wav 文件)。 在成功完成单音音频的还原输出后(示波器观察),再实验转换一首你喜欢的歌曲片段(或者自己唱录一句,如 “ 我还是从前那个少年 miya ”)为 wav 文件,进行还原输出。 一、DAC 简介 DAC(中文:数字模拟转换器)是一种将数字信号转换为模拟信号(以电流、电压或电荷的形式)的设备。 电脑对声音这种信号不能直接处理,先把它转化成电脑能识别的数字信号,就要用到声卡中的 DAC,它把声音信号转换成数字信号,要分两步进行,即采样和转换。 二、输出正弦波与蜂鸣器发声 打开 keil , uint16_t 类型的数组存储波形数据。 编译工程无措 用示波器观察波形: 将板子上的PA4或PA5接上蜂鸣器,并接地,便可让蜂鸣器发出声音 三、数字音频数据转模拟音频波形输出 方法:首先用音频制作工具如 audition 制作一段数字化的 2khz 正弦波 wav 文件,制作时须指定采样频率、量化位数和通道数,以及时间长度。 MCU 资源有限,建议采样 8khz,量化16bit,单通道,时长仅仅 2 秒左右。 音频 wav 数据可以用类似汉字字模的保存方式,直接 copy 到 Keil 代码中数组中,不必使用SD卡上的 wav 文件(野火开发板是读取 SD 卡上的 wav 文件)。 将文件中所有的压缩包解压到当前文件目录下,然后按照网址所提示的安装教程进行安装。 Adobe Audition CS6 打开【Adobe Audition CS6】,找到下载歌曲路径,点击打开 音频显示: 鼠标拖动截取片段,点击存储。 下拉设置【格式】,其【采样类型】与【格式设置】都会改变,点击【确定】。 Uedit32 将保存的文件用 Uedit32 打开。 打开后显示如下: 选择复制。 新建文件,然后粘贴复制内容到新文件。 CTRL+A 鼠标右键 选择范围 输入起始的行号和列号,选中内容。 复制选中内容。 Notepad++ 打开 Notepad++ ,粘贴复制内容。 删除不需要的尾行,将该文本复制下来。 打开第二部分的文件【DAC—输出正弦波】工程文件。 将文本复制进 uint16_t Sine12bit[] 数组中去,并删掉中括号里面的数据。 结果显示 编译工程文件,无错。 示波器显示波形。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1602 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1536 浏览 1 评论
967 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
680 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1579 浏览 2 评论
1860浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
640浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
513浏览 3评论
527浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
500浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 10:23 , Processed in 0.708500 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号