纬图虚拟仪器论坛

 找回密码
 立即注册
搜索
查看: 70053|回复: 19

STM32通过FSMC驱动3.2寸液晶屏实现的音乐频谱

[复制链接]
发表于 2012-11-7 15:04:16 | 显示全部楼层 |阅读模式
本帖最后由 wdluo 于 2012-11-20 20:00 编辑

视频演示:
http://player.youku.com/player.php/sid/XNDcyMDgwMTE2/v.swf


源码下载:
lattice_ music _tft.rar (1.42 MB, 下载次数: 1830)
回复

使用道具 举报

发表于 2012-11-7 15:13:54 | 显示全部楼层
+1
回复 支持 反对

使用道具 举报

发表于 2012-11-13 23:22:39 | 显示全部楼层
请问是用具体什么型号的芯片?STM32F103能搞定吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-14 09:21:02 | 显示全部楼层
top332 发表于 2012-11-13 23:22
请问是用具体什么型号的芯片?STM32F103能搞定吗?

就是F103的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-20 19:56:42 | 显示全部楼层
源码已经整理好并上传了,大家也可以玩玩
回复 支持 反对

使用道具 举报

发表于 2013-2-5 00:32:04 | 显示全部楼层
LZ能重新上传源代码吗?谢谢!我把这段代码移植到我的开发板上效果很差劲,几乎是花屏。
回复 支持 反对

使用道具 举报

发表于 2013-3-18 22:06:25 | 显示全部楼层
我的为啥不能运行呢··
回复 支持 反对

使用道具 举报

发表于 2013-4-16 17:36:13 | 显示全部楼层
感谢楼主的大恩大德
回复 支持 反对

使用道具 举报

发表于 2013-5-17 21:37:49 | 显示全部楼层
很好,最近正在玩,谢谢分享。
回复 支持 反对

使用道具 举报

发表于 2013-5-18 03:17:50 | 显示全部楼层
最近也在研究ST自带的DSP中的代码~ 感谢楼主~
回复 支持 反对

使用道具 举报

发表于 2013-7-12 23:07:28 | 显示全部楼层
楼主你好,看了你的代码,感觉你的方式不如不用DMA,因为你一次只传输一个,而且还是等待的方式?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-13 09:45:30 | 显示全部楼层
381082014 发表于 2013-7-12 23:07
楼主你好,看了你的代码,感觉你的方式不如不用DMA,因为你一次只传输一个,而且还是等待的方式?

你是说的ADC采样部分?这里最好的方式应该是定时器触发采样加DMA了,效率最高,而且能精确的控制采样率,只是当时还没想到用这种方式,不过在这种采样率要求不高的场合,这种模式基本上也够用了,因为其他也没什么事情要做,系统负荷不大。
回复 支持 反对

使用道具 举报

发表于 2013-7-13 23:01:43 | 显示全部楼层
wdluo 发表于 2013-7-13 09:45
你是说的ADC采样部分?这里最好的方式应该是定时器触发采样加DMA了,效率最高,而且能精确的控制采样率, ...

我正在将你的代码移植到STM32F407上,其中片上外设如AD,DMA ST提供的改动不少。最关键的是FFT运算部分,汇编的库没了,只有C语言的库,改动较大。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-15 13:14:03 | 显示全部楼层
381082014 发表于 2013-7-13 23:01
我正在将你的代码移植到STM32F407上,其中片上外设如AD,DMA ST提供的改动不少。最关键的是FFT运算部分,汇 ...

希望你改好了给分享给大家学习下,也看看407的处理能力
回复 支持 反对

使用道具 举报

发表于 2013-7-18 09:43:28 | 显示全部楼层
本帖最后由 wdluo 于 2013-7-18 10:29 编辑


楼主,这是我初版的效果,现在单独控制某一个区域的颜色有的区域会失效,不知是LCD驱动问题还是屏幕问题,LCD驱动我没有细调。但是我把你主程序改了,你原来的那个太复杂了,我这就5句话。

目前要改进的地方很多,比如在电路上要加电容,程序中加入自适应音量大小功能。

最后我还是想用LED点阵屏来做,不知道你有没有推荐的点阵屏?我看到一款,只有红色一种颜色。
http://item.taobao.com/item.htm? ... a230r.1.17.9.cDfjZg

        while(1)
        {        
                if( ADC1Finished == 1){  //采样点没有达到所要求的点
               
                        FFT_F32Process(&F32_S,FFT_SIZE,BufFFTIn,BufFFTOut);
                        
                        UpdateHeight();

                        music_fft_main(BufHeightRed,BufHeightGreen);

                        ADC1Finished = 0;
                }
        }
回复 支持 反对

使用道具 举报

发表于 2013-7-18 09:50:42 | 显示全部楼层
http://player.youku.com/player.php/sid/XNTg0MzMyNzg0/v.swf
楼主你好,我的初版出来了。
1.刷屏的时候有点区域单独更新颜色会失效,不知道是LCD驱动问题(我没有细调LCD)还是屏幕硬件问题。
2.你用的是整数FFT运算,我用整数的FFT算出来幅度都是0,只能用浮点数来算。
3.你的主程序循环太复杂,我这边就用了5句话,呵呵。
4.线是直接焊到AD脚的,没加滤波电容什么的,感觉干扰太大。我还是想用LED点阵屏来做,不知道你有没有什么推荐的屏,我看上一款可惜是单色屏。
http://item.taobao.com/item.htm? ... a230r.1.17.9.cDfjZg
最后谢谢你提供的代码,让我几天之内就搞出来了,谢谢。
回复 支持 反对

使用道具 举报

发表于 2013-7-18 09:51:19 | 显示全部楼层
怎么回复了两次都没了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-18 10:35:00 | 显示全部楼层
381082014 发表于 2013-7-18 09:50
http://player.youku.com/player.php/sid/XNTg0MzMyNzg0/v.swf
楼主你好,我的初版出来了。
1.刷屏的时候 ...

1、这种问题可能是你屏驱动程序的问题;
2、我好像是用的官方提供的DSP库,时间久了不记得了,论坛里面还有个C语言的FFT程序,而且计算速度也挺快的,基本上可以达到要求;
3、我程序实现功能后就没进一步改进了,当然也有更多需要改进的地方,比如ADC采样就可以使用定时器触发加DMA的方式来实现,这样采样频率精度会更高,而且CPU的负担会少很多;
4、要做到真正实用的效果肯定是需要在ADC采集前端对信号做一些处理的,淘宝上也有双色屏卖,你可以找找。
回复 支持 反对

使用道具 举报

发表于 2015-2-25 16:16:12 | 显示全部楼层
什么情况。不让下载阿
回复 支持 反对

使用道具 举报

发表于 2015-11-30 14:04:53 | 显示全部楼层

MSVCR100D.DLL丢失
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|纬图虚拟仪器

GMT+8, 2024-12-22 11:51 , Processed in 0.481195 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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