打印
[应用相关]

使用STM32F103的DAC功能实现音频输出

[复制链接]
1094|39
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DAC简介DAC 为数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与 ADC相反。在常见的数字信号系统中,大部分传感器信号被化成电压信号,而 ADC把电压模拟信号转换成易于计算机存储、处理的数字编码,由计 算机处理完成后,再由 DAC输出电压模拟信号,该电压模拟信号常常用来驱动某些执行器 件,使人类易于感知。如音频信号的采集及还原就是这样一个过程。
STM32具有片上 DAC外设,它的分辨率可配置为 8位或 12位的数字输入信号,具有两个 DAC 输出通道,这两个通道互不影响,每个通道都可以使用 DMA 功能,都具有出错检测能力,可外部触发。



使用特权

评论回复
沙发
好几遍vh|  楼主 | 2022-1-28 17:13 | 只看该作者
准备
由于手动写入函数比较麻烦,而且对于初学者,不知道该把这些函数写在哪里的,可以说对初学者及其不友好。

推荐使用stm32cubemx:直接图形化配置,最后至多加几行代码,即可完成实验,没有安装可自行百度,比较简单

安装下载可以参考下面的链接
链接:STM32CubeMX介绍、下载与安装
https://blog.csdn.net/ybhuangfugui/article/details/52225736

使用特权

评论回复
板凳
好几遍vh|  楼主 | 2022-1-28 17:13 | 只看该作者
输出一个周期2khz的正弦波——基于HAL库
这里由于没有示波器,所以表现形式换为蜂鸣器发声。

使用特权

评论回复
地板
好几遍vh|  楼主 | 2022-1-28 17:14 | 只看该作者
1.打开cubemx,新建工程

使用特权

评论回复
5
好几遍vh|  楼主 | 2022-1-28 17:15 | 只看该作者
2.选择芯片

使用特权

评论回复
6
好几遍vh|  楼主 | 2022-1-28 17:16 | 只看该作者

使用特权

评论回复
7
好几遍vh|  楼主 | 2022-1-28 17:18 | 只看该作者
通过STM32F103RB的蜂鸣器原理图,找到对应的管脚,这里使用PA15的tim

使用特权

评论回复
8
好几遍vh|  楼主 | 2022-1-28 17:18 | 只看该作者

使用特权

评论回复
9
好几遍vh|  楼主 | 2022-1-28 17:19 | 只看该作者
设置蜂鸣器

使用特权

评论回复
10
好几遍vh|  楼主 | 2022-1-28 17:20 | 只看该作者

使用特权

评论回复
11
好几遍vh|  楼主 | 2022-1-28 17:21 | 只看该作者
到此芯片页面配置完毕,再配置configuration页面,时钟树页面(clock configuration)可以用默认值

使用特权

评论回复
12
好几遍vh|  楼主 | 2022-1-28 17:21 | 只看该作者

使用特权

评论回复
13
好几遍vh|  楼主 | 2022-1-28 17:22 | 只看该作者
设置2khz的公式:2khz=时钟输入频率(默认8M)/(分频值7+1)/重载值(500),默认占空比50%(比较值500*50%=250)

使用特权

评论回复
14
好几遍vh|  楼主 | 2022-1-28 17:23 | 只看该作者

使用特权

评论回复
15
好几遍vh|  楼主 | 2022-1-28 17:24 | 只看该作者
时钟设置

使用特权

评论回复
16
好几遍vh|  楼主 | 2022-1-28 17:25 | 只看该作者
应用后,返回,进入NVIC

使用特权

评论回复
17
好几遍vh|  楼主 | 2022-1-29 11:12 | 只看该作者
配置完成后,接下来生成keil工程,点击左上角的像螺丝状的图标

使用特权

评论回复
18
好几遍vh|  楼主 | 2022-1-29 11:13 | 只看该作者
然后就是工程文件储存设置,以及相关环境和库的版本选择

使用特权

评论回复
19
好几遍vh|  楼主 | 2022-1-29 11:15 | 只看该作者
生成工程文件后,打开

使用特权

评论回复
20
好几遍vh|  楼主 | 2022-1-29 11:17 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

114

帖子

0

粉丝