本帖最后由 BigStrong 于 2016-9-7 11:27 编辑
基于STM32F103的音乐频谱测试 1. 开发环境 1) 硬件:STM32F103C8、0.96英寸OLED; 2) 软件:MDK5.18; 2. 日期 1) 2016年09月07日 3. 实现功能 1) 关键字:stm32f103c8(ADC、DMA、Timer),ST的DSP库,256点快速傅里叶变换,OLED(4线SPI) 2) 基于STM32的256点音乐FFT变换,为提高显示屏的动态刷新速率,修改了oled.c的void OLED_Fill(); 4. 参考资料 1) 受此博客启发甚大,博主大牛一枚,其中有DSP库,按照文中步骤,首先把模拟信号调通;(顿时信心倍增啊,哈哈~)。 此文重在讲解如何运用ST的DSP库。 2) 此博客为ADC的外部定时器触发以及DMA自动搬运数据做了一个不错的demo; 3) 至于ADC的采样率设置,请大家仔细查看数据手册喽; 5. 调试步骤 1) stm32的串口、ADC的基础功能调通;(方便从打印信息里了解程序执行情况,程序是在正点原子的基础上修改的) 2) OLED驱动起来,了解OLED驱动程序里void OLED_Fill()的工作原理; 3) 参照4.1),运用ST的DSP库,调出预定波形; 4) 参照4.2),生成数组(256个模拟采样点); 5) 将4)生成数据替换3)中输入,即可调出频谱图。 6. 调试心得 调试过程中,务必牢记:步步为营!若调试不出预期状态,折回,仔细分析,查看中间数据。 我在调试过程中,有些函数自以为用对了,却未得到正确的结果,经过debug,查看中间数据,才发现问题所在。 有时候,调试陷入僵局,就推开键盘,坐到窗边,换个心情,换个思路,说不定就灵光一闪,可以另辟蹊径哦~~~~ 分享心得,只为大家少走弯路,同时也弥补一下我“一直在下载,从来不分享”的歉意~~~~开天辟地头一回,居然有点激动~~~~请多指教~~~~~
|