一、前言
本博客主要介绍如何用AU获取wav格式的正弦波以及截取到的音频,并通过stm32f103c8t6的DAC模块,转换为模拟音频
二、使用DAC输出周期2khz的正弦波
建议先用单音音频(比如2000Hz的正弦波)的wav数据进行实验,通过DAC或PCM音频模块能够基本还原出原始正弦波声音后,再用语言/音乐信号进行实验。
生成单音正弦波
文件—>新建—>音频文件
设置相关采用频率
选择生成->音调
设置相关频率
文件->导出->设置导出为wav文件
用UltraEdit得到相关数据
用UltraEdit打开刚才保存的wav文件
CTRL+A,接着鼠标右键,选择 十六进制复制选定视图,将内容粘贴到一个新建文件中
在新建文件中,CTRL+A,接着鼠标右键,选择范围输入起始的行号和列号,确定就选中了整个我们需要的内容
复制到notepad++中
Edit编辑->列块编辑->输入0x
这里借用DAC生成正弦波的例程代码
链接:https://pan.baidu.com/s/18zsQG5mZXbjafPuAJEUkMg
提取码:706i
将内容复制到keil文件对应的位置,在下图红框中进行替换
之后,编译下载,看能否观察到预期的正弦波。
三、使用DAC输出数字音频歌曲数据转换为模拟音频波形输出
打开mp3音乐
截取一段音频
右键,点击存储选取为,点击更改,配置如下:
点击确定,完成。
打开软件WavToC,这是一个将WAV文件转化成C语言代码的文件
点击右下角的打开文件
选择我们刚才生成的wav文件
点击生成代码,便自动生成出代码
可以点击试听,试一试是不是正确的声音。
编辑好代码后,烧录,借助音频模块听听看能否还原。
这里由于手头没有音频播放模块,暂时不详述。
四、参考资料
https://blog.csdn.net/qq_43279579/article/details/111990896
https://blog.csdn.net/m0_58414679/article/details/122221730?spm=1001.2014.3001.5501
https://blog.csdn.net/m0_58414679/article/details/122221730?spm=1001.2014.3001.5501