野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12300|回复: 6

关于用STM32F103C8T6做音乐频谱的几点疑问

[复制链接]
发表于 2016-5-3 11:57:46 | 显示全部楼层 |阅读模式
本帖最后由 liutao 于 2016-5-3 11:58 编辑

首先介绍下用到的资源,ADC通道0PA0ADC时钟频率12M),基本定时器2(用于产生5us的一个基本时钟,计数525us,得到40KHz的频率,控制ADC的采样率),TIM3用于控制点阵屏的刷新速度(原计划是10ms刷新一次,但是发现好慢,显示不全等问题,后来改为了50us),TIM4PWM(用于控制点阵屏的OE端)。
先上主程序截图
ADC部分截图,考虑到篇幅问题,初始化部分就不截图了,ADC初始化部分把ADC的时钟配置为12M,采用单次转换模式,非扫描模式。并打开了ADC的中断,ADC1->SMPR2这个寄存器把采样周期设为了239.5个周期。其他就和普通的ADC初始化差不多了。

定时器部分,用TIM2每隔25us产生一个中断,在TIM2中断里,主要就是启动ADC转换
在TIM3的中断里面主要就是不断地用经过FFT运算后的数据去刷新点阵屏。
TIM3部分截图

现在出现的问题是,可以采集到AD值,也有音柱出现,但是根本不是我想要的那种(对比了用51单片机做的音乐频谱),然后就是音柱跳动的很快,感觉它不按节奏来,如果把点阵屏改成10ms刷新一次。则会出现,整个屏幕都会出现音柱的现象,现在是改为了50us刷新一次,音柱跳动的很快
附图片
现在我的问题主要有以下几点
1.      ADC部分的采样时间我的计算方式是否有问题(能否达到40KHz),我用TIM2每隔25us启动一次ADC转换,然后ADC1->SMPR2我又设置为了239.5个周期,里的这个239.5个周期是干嘛的?如果它变小了会不会对我的采样率有影响?
2.      这几个外设的中断优先级的问题,ADC中断(采集数据) 和TIM2中断(控制AD的采集频率)  以及TIM3中断(控制32*64点阵屏的显示),这三个外设优先级从高到低应该怎么排列。还是说无所谓怎么排。
3.      这个FFT是从别的单片机上移植过来的,人家原来用的10位AD,用的查表的方式去计算幅值。现在我移到M3上面(12位AD)需不需要对它进行修改?
4.      这个点阵屏的刷新率多少才是合适的,跟我的AD采样率有没有什么关系?


回复

使用道具 举报

 楼主| 发表于 2016-5-3 11:59:33 | 显示全部楼层
这个背景怎么是这样的呢?
回复 支持 反对

使用道具 举报

发表于 2016-5-3 16:48:34 | 显示全部楼层
可能是因为你直接复制其它网站的html代码了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-3 19:39:47 | 显示全部楼层
flyleaf 发表于 2016-5-3 16:48
可能是因为你直接复制其它网站的html代码了

应该是的,火锅,这个问题你能帮参考下么?
回复 支持 反对

使用道具 举报

发表于 2016-5-4 09:37:05 | 显示全部楼层
liutao 发表于 2016-5-3 19:39
应该是的,火锅,这个问题你能帮参考下么?

没做过频谱分析,傅利叶都还给老师了。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-5 09:49:17 | 显示全部楼层
flyleaf 发表于 2016-5-4 09:37
没做过频谱分析,傅利叶都还给老师了。。

哦,那么问题来了,老师有没有把学费还给你呢!  
回复 支持 反对

使用道具 举报

发表于 2018-6-9 22:58:14 | 显示全部楼层
兄弟,你的ad口是接到哪的,直接用耳机的左右声道接上去可以吗,我也在做这个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-18 19:40 , Processed in 0.028518 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表