STM32
登录
直播中
微风挽雨
9年用户
921经验值
擅长:可编程逻辑 电源/新能源 嵌入式技术
私信
关注
[问答]
如何用STM32F103的DAC输出一个周期2khz的正弦波呢
开启该帖子的消息推送
STM32F103
正弦波
什么是DAC数模转换器?
DAC数模转换器是由哪些部分组成的?
如何用
STM32
F103的DAC输出一个周期2khz的正弦波呢?
回帖
(1)
邝计嘉
2021-11-15 11:31:59
实验要求
用STM32F103的DAC功能完成以下波形输出,用示波器观察波形,并用蜂鸣器或手机耳机收听输出声音效果、感受歌曲的音质差异。
输出一个周期2khz的正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”的单音;
将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。
一、DAC简介
数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数字信号的器件。
STM32具有片上DAC外设,它的分辯率可配置为8位或12位的数字输入信号,具有两个DAC输出通道,这两个通道互不影响,每个通道都可以使用DMA功能,都具有出错检测能力,可外部触发。
DAC模块图如下:
二、输出一个周期2khz的正弦波
1、用Audition输出正弦波的单音频波形文件(.wav)
打开Audition软件,新建音频文件
指定采样频率、量化位数和通道数
MCU资源有限,建议采样频率8khz,8或16量化比特,单通道,1~2秒时长。
音频wav数据可以用类似汉字字模的保存方式,直接copy到Keil代码中数组中,不必使用SD卡上的wav文件(野火开发板是读取SD卡上的wav文件)。
生成基本音色(正弦波)
另存为wav文件
用UltraEdit打开前面生成的wav文件,前面的一段是固定格式
快捷键CTRL+A后,点击鼠标右键选择十六进制复制选定视图
新建文件,粘贴
我们想要的只是中间的那一块内容,找到最下面那个字节,鼠标右键 选择范围 输入起始的行号和列号
确定就选中了整个我们需要的内容
再次复制粘贴,建立新文件并保存
用Notepad++等文本编辑软件在十六进制之前添加0x,点击编辑—》列块编辑,按列块插入0x和, 每列重复操作
这样就准备好了我们要的音频文件
2、 输出波形
示例程序采用于野火的STM32F103指南者DAC输出正弦波的示例程序
将前面生成的音频文件复制粘贴到 uint16_t Sine12bit 数组中
将程序烧录到板子中,将板子与示波器连接观察输出波形
(使用开发板的DAC输出通道PA4和PA5这两个引脚来观测输出的波形,选其一即可)
用耳机或者喇叭接到PA4脚就可以听到声音了,可以听到很长的“滴”的声音。
三、将一段数字音频歌曲数据转换为模拟音频波形输出
1、用Audition输出wav文件
用Audition打开一段音乐
剪切时长为5~10秒
鼠标右键选中裁剪区,另存为wav文件
采样类型改为:采样频率8khz,量化16bit,单通道
2、输出波形
按照上面相同的步骤生成相应的十六进制数组,并复制粘贴到示例代码对应的地方,编译运行
将程序烧录到板子上,用示波器连接PA4引脚,观察输出波形
用耳机或者喇叭接到PA4脚就可以听到音乐了。
四、总结
以上即为基于STM32的DAC功能输出WAV音频波形的实验内容。
实验要求
用STM32F103的DAC功能完成以下波形输出,用示波器观察波形,并用蜂鸣器或手机耳机收听输出声音效果、感受歌曲的音质差异。
输出一个周期2khz的正弦波(循环)。此波形驱动作用至蜂鸣器或喇叭,会呈现一个“滴…”的单音;
将一段数字音频歌曲数据转换为模拟音频波形输出(循环)。
一、DAC简介
数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数字信号的器件。
STM32具有片上DAC外设,它的分辯率可配置为8位或12位的数字输入信号,具有两个DAC输出通道,这两个通道互不影响,每个通道都可以使用DMA功能,都具有出错检测能力,可外部触发。
DAC模块图如下:
二、输出一个周期2khz的正弦波
1、用Audition输出正弦波的单音频波形文件(.wav)
打开Audition软件,新建音频文件
指定采样频率、量化位数和通道数
MCU资源有限,建议采样频率8khz,8或16量化比特,单通道,1~2秒时长。
音频wav数据可以用类似汉字字模的保存方式,直接copy到Keil代码中数组中,不必使用SD卡上的wav文件(野火开发板是读取SD卡上的wav文件)。
生成基本音色(正弦波)
另存为wav文件
用UltraEdit打开前面生成的wav文件,前面的一段是固定格式
快捷键CTRL+A后,点击鼠标右键选择十六进制复制选定视图
新建文件,粘贴
我们想要的只是中间的那一块内容,找到最下面那个字节,鼠标右键 选择范围 输入起始的行号和列号
确定就选中了整个我们需要的内容
再次复制粘贴,建立新文件并保存
用Notepad++等文本编辑软件在十六进制之前添加0x,点击编辑—》列块编辑,按列块插入0x和, 每列重复操作
这样就准备好了我们要的音频文件
2、 输出波形
示例程序采用于野火的STM32F103指南者DAC输出正弦波的示例程序
将前面生成的音频文件复制粘贴到 uint16_t Sine12bit 数组中
将程序烧录到板子中,将板子与示波器连接观察输出波形
(使用开发板的DAC输出通道PA4和PA5这两个引脚来观测输出的波形,选其一即可)
用耳机或者喇叭接到PA4脚就可以听到声音了,可以听到很长的“滴”的声音。
三、将一段数字音频歌曲数据转换为模拟音频波形输出
1、用Audition输出wav文件
用Audition打开一段音乐
剪切时长为5~10秒
鼠标右键选中裁剪区,另存为wav文件
采样类型改为:采样频率8khz,量化16bit,单通道
2、输出波形
按照上面相同的步骤生成相应的十六进制数组,并复制粘贴到示例代码对应的地方,编译运行
将程序烧录到板子上,用示波器连接PA4引脚,观察输出波形
用耳机或者喇叭接到PA4脚就可以听到音乐了。
四、总结
以上即为基于STM32的DAC功能输出WAV音频波形的实验内容。
举报
更多回帖
rotate(-90deg);
回复
相关问答
STM32F103
正弦波
如何使用
STM32F103
的
DAC
输出
周期
为
2khz
的
正弦波
呢
2021-11-15
1618
如何使用
STM32F103
的
DAC
去
输出
一
个
周期
为
2khz
的
正弦波
呢
2021-11-15
984
如何使用
DAC
去
输出
一
个
周期
2khz
的
正弦波
呢
2021-11-15
1586
如
何用
STM32F103
的
DAC
功能完成
输出
正弦波
与蜂鸣器发声的工作
2021-11-15
3391
如何
输出
一
个
周期
2khz
的
正弦波
?
2021-11-15
2279
如
何用
DAC
去实现
输出
2KHz
正弦波
呢
2021-11-15
1806
如何采用
STM32F103
指南者
DAC
输出
正弦波
?
2021-11-19
2342
STM32
DAC
是如何实现
输出
2khz
正弦波
和歌曲音频片段波形的
2021-11-15
1443
如
何用
STM32F103
的
DAC
功能完成波形
输出
呢
2021-11-18
1906
怎样用
STM32F103
去
输出
一
路PWM波形
呢
2021-11-15
1480
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分