完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、用STM32F103输出一路PWM波形
1、打开下载好的工程文件 2、编译生成HEX文件 3、之后我们将生成的HEX文件烧录到stm32板子中,之后将板子连接示波器,输出效果: 二、用STM32的DAC功能完成波形输出 (1)STM32F103的DAC功能输出一个周期2khz的正弦波 因为我们需要输出正弦波,而计算机只能够识别一个一个的点,所以我们需要先对正弦波进行采样,取出一定的点放到数组中,再去执行输出代码。我在这里采用Matlab进行采样点的获取。 1、首先我们找到野火配套资料里的 38-DAC—输出正弦波 工程文件,将其打开,找到如下文件,用matlab打开: 2、将程序修改一下 3、将代码修改如下: %用于产生正弦数据表,输出到文件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) = 4095endend dlmwrite(‘dac_sinWave.c’,r); %把数据写入到文件,方便添加到stm32工程中plot(n,r,‘。’) %把这些点画出来 4、运行修改之后的脚本,便会生成3600个取样点,将这些取样点全部复制下来。 5、然后打开 DAC-输出正弦波 的工程keil文件 6、将复制的全部粘贴到 uint16_t Sine12bit 数组中: 7、然后对main函数进行编译生成hex文件,之后将hex文件烧录到板子中,将板子与示波器连接,示波器显示如图: 8、连接上蜂鸣器 连接好后,就可以让蜂鸣器发出声音。 (2)用STM32F103的DAC功能将一段数字音频歌曲数据转换为模拟音频波形输出 1、首先我们打开 Adobe Audition 软件,在里面选择我们之前电脑上下载的一首歌曲进行打开,得到如下界面: 2、截取其中一小段 3、用下载的UltraEdit软件打开这个wav文件 打开后如下: 4、全选,然后选择十六进制复制试图,然后新建一个文件,再粘贴上去 5、全选,然后选择“选择范围” 列号选择12到59 6、打开 notepad++ 软件,将以上复制的内容粘贴进去,在其中插入 ,0x 生成如下文件: 7、打开刚刚的正弦波工程文件,然后将文本复制进uint16_t Sine12bit[]数组中去 8、然后生成的hex文件烧录到板子中去,将板子和示波器连接好,打开示波器便可观察到我们截取音乐片段的模拟音频波形。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1602 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1536 浏览 1 评论
967 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
680 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1579 浏览 2 评论
1860浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
640浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
513浏览 3评论
526浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
500浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 06:21 , Processed in 0.837610 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号