用STM32F103的DAC功能完成以下波形输出,并收听输出声音效果

用STM32F103的DAC功能完成以下波形输出,并收听输出声音效果


一、DAC是什么

数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数字信号的器件。
STM32具有片上DAC外设,它的分辯率可配置为8位或12位的数字输入信号,具有两个DAC输出通道,这两个通道互不影响,每个通道都可以使用DMA功能,都具有出错检测能力,可外部触发。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果。

二、DAC主要特征

2个DAC转换器:每个转换器对应1个输出通道
8位或者12位单调输出
12位模式下数据左对齐或者右对齐
同步更新功能
噪声波形生成
三角波形生成
双DAC通道同时或者分别转换
每个通道都有DMA功能
外部触发转换
输入参考电压VREF+
DAC通道框图
在这里插入图片描述

在这里插入图片描述

MATLAB的正弦波生成

先打开野火官方的文件中有一个matlab脚本,里面就是直接对正弦波进行采样的代码。我们直接在此基础之上,修改采样点数就可以直接将结果复制到我们的源码中了。
在这里插入图片描述
修改采样值为3600
在这里插入图片描述
此时已经生成一个正弦波,把其放大,就已经可以看到离散图像了
在这里插入图片描述
放大后的
在这里插入图片描述

正弦波的生成与调试

打开Adobe Audition,依次点击下列
在这里插入图片描述
采样率改为2000HZ,位深度改为16
在这里插入图片描述
然后等生成完成,选中一段,点击效果,生成基本色,频率改为2000。
在这里插入图片描述
在这里插入图片描述
就会看到生成了正弦波。
在这里插入图片描述
插入音频也是同理,按上面的步骤一样的。

音频截取与输出

随便去下载一首mp3,然后用该软件打开。
在这里插入图片描述
选中一段,复制为新文件
在这里插入图片描述
在这里插入图片描述
将截取到的音频用UltraEdit打开(该软件可以去百度自行下载),里面全是16进制代码,下面我们只需将下列代码复制进keil工程中,再烧录进程序就可以播放出来。

在这里插入图片描述
因为在keil中需要0x表示16进制,所以全选右击十六进制复制选定视图,然后再新建一个复制进去。
在这里插入图片描述
我们需要的仅仅是中间16进制的数,下面我们选择复制。
将鼠标点击第一个16进制数的前面,可以看到是1排12列
在这里插入图片描述

再点击最后一个字符,1187行 59列
在这里插入图片描述
下面直接右击,选择范围,按你自己截取到的行列数进行截取。
在这里插入图片描述

将其复制进notepad++进行编辑,并进行列操作。

在这里插入图片描述
在每列前面加0x,将鼠标光标点在需要加0x的前面
在这里插入图片描述
在这里插入图片描述
下面是添加完成的。
在这里插入图片描述
打开keil工程中的bsp_dac.c,把下面的数字替换成上面我们生成的16进制数。
在这里插入图片描述

下面是示波器波形图(正弦)
在这里插入图片描述
歌曲的波形:
在这里插入图片描述

总结

本次实践学习了Adobe Audition的用法,用其生成正弦波,以及用该软件截取一段音频文件,再使用UltraEdit打开,生成的16进制码,再用notepad++进行修改与添加。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值