完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
一、DAC简介
数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。D/A转换器基本上由4个部分组成,即权电阻网络、运算放大器、基准电源和模拟开关。模数转换器中一般都要用到数模转换器,模数转换器即A/D转换器,简称ADC,它是把连续的模拟信号转变为离散的数字信号的器件。 采用于百度百科. 二、输出一个周期2khz的正弦波 本文示例程序采用于野火的STM32F103指南者DAC输出正弦波的示例程序 1、修改周期计算 我们可以通过工程里的正弦波点数和定时器配置生成特定频率的正弦波,这里我们需要输出一个周期为2kHz的正弦波,通过计算公式,我们可以得到,一共需要3600个采样点 打开修改为: %用于产生正弦数据表,输出到文件dac_sinWave.c 文件中,复制到c语言数组即可 n = 2*pi/3600 : 2*pi/3600 : 2*pi %分成3600等份 a = sin(n)+1; %求取sin函数值并向上平移一个单位,消除负数值 a = a * 3.3/2; %调整幅值,使范围限制为0~3.3 r = a* (2.^12) /3.3 %求取dac数值,12位dac LSB = 3.3/2.^12 r = uint16(r); %把double型数据转化成16位整型数据 for i = 1:32 if r(i) > 4095 %限制数据最大不超过4095 r(i) = 4095 end end dlmwrite('dac_sinWave.c',r); %把数据写入到文件,方便添加到stm32工程中 plot(n,r,'.') %把这些点画出来 打开MATLAB运行此程序,就会将3600个点生成到这个文件。 2、修改keil程序 进入工程后,我们需要找到存放数据的数组,将我们之前取到的3600个采样点,放进去 修改main int main(void) { /*DAC初始化*/ while(1) { DAC_Mode_Init(); } } 2、硬件连接 指南者开发板DAC输出通道为PA4和PA5,所以我们可以使用这两个引脚来观测输出波形 注意: PA5 引脚连接到 FLASH 芯片的 CLK 引脚中,这可能会干扰 DAC 实验输出的电压信 号,导致得不到正确的波形。所以DAC 和 SPI-FLASH 不能同时使用。 3、效果展示 以听到滴滴滴的声音,因为频率太小,所以蜂鸣器发生可能听不清,只有很小的声音 三、将一段数字音频歌曲数据转换为模拟音频波形输出 1、音频剪辑 打开音频剪辑器,选着片段建议时长仅仅5~10秒 设置采样8khz,量化16bit,单通道 2、转码 3、修改keil工程文件 硬件连线与前面一样。 4、效果展示 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1754 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1613 浏览 1 评论
1053 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1667 浏览 2 评论
1931浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
720浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
562浏览 3评论
587浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
546浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 18:31 , Processed in 0.823657 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号