STM32
直播中

张艳

7年用户 1578经验值
私信 关注
[问答]

如何输出一个周期2khz的正弦波?

如何输出一个周期2khz的正弦波?

回帖(1)

张健

2021-11-15 11:10:59
DAC介绍


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

1、输出一个周期2khz的正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”的单音;
2、将一段数字音频歌曲数据转换为模拟音频波形输出(循环)
输出一个周期2khz的正弦波

MATLAB下的操作

先打开野火提供的资料,使用MATLAB打开





因为输出周期为2KHz,通过公式计算得出采样点数为3600





在MATLAB程序中找到对应的部分





将32改成3600





完成后运行查看结果,可以看到一条正弦波图形





生成图形后的数据会保存到dac_sinWave.c中,点击该文件可以看到数据





keil中的操作

打开工程文件,选择下面的文件,找到波形数据的参数,将MATLAB中生成的数据复制粘贴到该函数中





然后将程序烧录至stm32中,与示波器连接后显示波形





音频信号输出

打开软件Adobe Audition CS6,选择一首喜欢的音乐,选择其中的一小部分,几秒就行,右键点击选择下列选项





完成下面的配置





使用WavToc软件进行数据的转换





将数据复制到下面函数中(跟上面的正弦波输出一样)





然后将程序烧录至芯片中,连接示波器就能观察波形了
总结

经过这次在STM32下DAC波形输出实验,让我对音频软件的使用更加熟练,也对相应环境的配置有了更多的了解。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分