目录

  • 一、DAC简介
  • 二、输出周期为2kHz的正弦波
  • 三、音频信号输出
  • 四、参考资料

一、DAC简介

  • DAC 为数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与 ADC相反。在常见的数字信号系统中,大部分传感器信号被化成电压信号,而 ADC把电压模拟信号转换成易于计算机存储、处理的数字编码,由计 算机处理完成后,再由 DAC输出电压模拟信号,该电压模拟信号常常用来驱动某些执行器 件,使人类易于感知。如音频信号的采集及还原就是这样一个过程。

  • STM32具有片上 DAC外设,它的分辨率可配置为 8位或 12位的数字输入信号,具有两个 DAC 输出通道,这两个通道互不影响,每个通道都可以使用 DMA 功能,都具有出错检测能力,可外部触发。

  • 功能框图:

  • DAC通道模块:

  • 图中 VDDAVSSA为DAC 模块模拟部分的供电,而 Vref+则是 DAC 模块的参考电压。DAC_OUTx 就是 DAC的输出通道(DAC_OUT1对应 PA4 ,DAC_OUT2 PA5引脚)。当 DAC 的参考电压为 Vref+的时候,DAC 的输出电压是线性的从 0~Vref+,12 位模式下 DAC 输出电压与 Vref+以及DORx的计算公式如下: DACx 输出电压=Vref*(DORx/4095)
  • DAC的控制寄存器DAC_CR的低 16 位用于控制通道 1,而高 16 位用于控制通道 2。
  • DAC 输出是受 DORx寄存器直接控制的,但是DORx寄存器不能被直接写入数据,而是通过DHRx间接的传给DORx寄存器,实现对 DAC 输出的控制。前面我们提到,STM32F4的 DAC 支持 8/12 位模式,8 位模式的时候是固定的右对齐的,而 12 位模式又可以设置左对齐/右对齐。
    单 DAC 通道 x,总共有 3 种情况:
    ① 8 位数据右对齐:用户将数据写入 DAC_DHR8Rx[7:0]位(实际存入 DHRx[11:4]位)。
    ② 12 位数据左对齐:用户将数据写入 DAC_DHR12Lx[15:4]位(实际存入 DHRx[11:0]位)。
    ③ 12 位数据右对齐:用户将数据写入 DAC_DHR12Rx[11:0]位(实际存入 DHRx[11:0]位)。
  • STM32F4的 DAC集成了两个输出缓存器,通过DAC_CR的BOFFx位控制,可使能或禁止各通道的输出缓冲器,但做的有些不好,如果使能的话,虽然输出能力强一点,但是输出没法到 0,在不使用输出缓存时可设置该位为 1。

二、输出周期为2kHz的正弦波

1.打开DAC\Project\RVMDK(uv5)\BH-STM32,找到如下函数:

2.通过如下公式计算出,周期频率位为2kHz大约需要采集1800个点:

3.找到.m文件,用matlab打开,对代码进行修改:

4.运行:

5.将dac_sinWave中的数据复制到uint16_t Sine12bit,周期32改成3600:

6.编译,成功后烧录到板子上,连接示波器,通过调频得到结果:

三、音频信号输出

1.通过 Adobe Audition 截取生成一段音频文件,打开AU,在文件里打开下载的歌曲:

2.设置参数,然后导出:

3.通过WavToC工具,将wav音频文件转为c语言代码程序:

4.将生成的数据替换工程中的波形数据:

5.烧录程序,通过示波器显示:

四、参考资料

Adobe Audition 2020中文版.

STM32F103使用TIM DMA DAC实现播放WAV音乐.

STM32实现DAC功能输出音频波形相关推荐

  1. STM32F103的DAC功能实现音频输出

    本次实验主要内容:用Adobe audition或goldwave等音频编辑软件录制"您好欢迎光临!"的几秒钟的声音(8khz采样.8bit量化编码的单声道wav格式),确保音频数 ...

  2. STM32F103使用DAC功能输出三角波

    在DAC的主要特征中可以看出,DAC内部还带有波形发生器. DAC 主要特征 2个DAC转换器:每个转换器对应1个输出通道 8位或者12位单调输出 12位模式下数据左对齐或者右对齐 同步更新功能 噪声 ...

  3. STM32通过DAC输出音频波形

    文章目录 一.音频及代码获取 二.代码部分 三.总结 四.参考文献 一.音频及代码获取 打开Adobe Audition,新建一个音频文件 采样率8khz,单声道,8bit 点击效果-->生成基 ...

  4. STM32F103使用DAC功能输出正弦波

    在DAC的主要特征中可以看出,DAC内部带有波形发生器. DAC 主要特征 2个DAC转换器:每个转换器对应1个输出通道 8位或者12位单调输出 12位模式下数据左对齐或者右对齐 同步更新功能 噪声波 ...

  5. 嵌入式实验(四):用STM32输出PWM波形/DAC功能完成波形输出

    0 实验目标 用STM32F103输出一路PWM波形,建议采用定时器方法.野火和网上大多数资源采用此方法,有完整源码.用示波器观察输出波形. 用STM32F103的DAC功能完成以下波形输出,用示波器 ...

  6. 详细介绍Audition输出一个周期2khz的正弦波(循环)。将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。

    详细介绍Audition输出一个周期2khz的正弦波(循环).将一段数字音频歌曲数据转换为模拟音频波形输出(循环) 序 言 1)STM32 的 DAC简介 2)DAC基本原理 2)DAC数字信号格式 ...

  7. 基于STM32的DAC音频输出

    基于STM32的DAC音频输出 一.DAC 1.1 DAC简介 1.2 DAC功能框图剖析 二.使用DAC输出周期2kHz的正弦波 2.1 使用Adobe Audition输出一个周期2khz的正弦波 ...

  8. STM32配置DAC输出固定电压和方波

    STM32F103VCT6自带两个12位DAC,DAC的转换速度一直没有查到,网上有人说是1MHZ的频率,那就是1us了.ADC的转换时间在56MHZ工作频率下为1us,在72MHZ工作频率下为1.1 ...

  9. STM32输出PWM波形

    简单介绍一下PWM PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编 ...

最新文章

  1. rsyslog的学习
  2. js获取已知scripts中是否存在某变量_JS全局变量是如何工作的?
  3. android 动画动态消失,Android属性动画——没有什么动画是一个AnimSet不能解决的...
  4. 【开源项目】QT OPENGL 与 shader 绘制展示视频代码实例 OPenGL直接显示YUV数据
  5. 交换排序之冒泡排序(java实现)
  6. Android:解决魅族5在Logcat下不输出Log.v()日志
  7. 巧妇难为无米之炊 走出软件测试的困境
  8. 从程序员小仙飞升上神,java技术开发要如何实现?
  9. 【NOIP2000】【Luogu1019】单词接龙
  10. 团体程序设计天梯赛-练习集-L1-046. 整除光棍
  11. 5款精美APP原型设计模板,触手可得
  12. 全国地址邮编.sql
  13. python列表常见的5种去重方法
  14. php 的一元二次方程_php扩展 求解一元二次方程
  15. 六键无冲和全键无冲哪个好_键盘冷知识:全键无冲到底是什么?
  16. Docker推送镜像到自己的阿里云卡住,也不报错
  17. 电脑WiFi图标不见了?!怎么办......≡ (▔﹏▔) ≡
  18. 策略产品的进修之路—了解策略和策略产品
  19. C编译错误,运行错误以及常见问题。
  20. Matlab sum( ) 函数

热门文章

  1. lambda学习视频和stream学习视频(Java8 Lambda表达式视频教程)-Java爬虫-网络购物的正确打开方式
  2. 云主机和物理机的区别
  3. 显卡lol测试软件,GPU测试:能够轻松应对主流游戏_惠普 ENVY X360 15-bp107TX_笔记本评测-中关村在线...
  4. springBoot发送邮件附件名称乱码的解决
  5. 阿福卡专属流量包 开通 取消 方法
  6. 关联规则与强关联规则计算
  7. 联网常见通信协议与通讯协议梳理- 通讯协议
  8. 解决ubuntu无法显示中文拼音
  9. Shell 脚本的详细解读 (三)
  10. 数据分析中常见的存储方式