数码之家

 找回密码
 立即注册
搜索
查看: 2194|回复: 11

25664LED音乐频谱显示器

[复制链接]
发表于 2021-9-2 13:20:14 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一直喜欢音乐频谱,听音乐时看着频谱的同步跳跃,感觉心旷神怡,之前做过STC的音乐频谱,觉得还行,但速度还是有些慢,近来学做一个STM的音乐频谱,用了两张128*64高清LED全彩屏,有点奢侈,网上找来程序进行了加工,终于能够显示了,效果还不错,速度够快,做成128个点的,想做成两对称的却不成功,随便拍了一下视频,感兴趣的可以看一下https://v.youku.com/v_show/id_XNTgwMjY2ODQyNA==.html
微信图片_20210902131518.jpg 微信图片_20210902131509.jpg
还做了镜像的程序,但合成不成功。请高人出手:handshake:
单个文件不能大于6M,所以分为3个包,下载后需要改名为FFT_CUBE.zip.001,FFT_CUBE.zip.002,FFT_CUBE.zip.003再解压

FFT_CUBE001.zip

6 MB, 下载次数: 2, 下载积分: 家元 -55

FFT_CUBE002.zip

6 MB, 下载次数: 2, 下载积分: 家元 -55

FFT_CUBE003.zip

1.32 MB, 下载次数: 2, 下载积分: 家元 -55

发表于 2021-9-2 13:52:45 | 显示全部楼层
怎么感觉太边缘了不好看呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-2 14:09:55 | 显示全部楼层
se7ens 发表于 2021-9-2 13:52
怎么感觉太边缘了不好看呢

分频点还需要处理
回复 支持 反对

使用道具 举报

发表于 2021-9-2 14:34:54 | 显示全部楼层
128点数据,镜像
顺序写缓冲1;反序写缓冲2

或顺序写缓冲2;反序写缓冲1
回复 支持 反对

使用道具 举报

发表于 2021-9-2 15:48:25 | 显示全部楼层
这么大,不如直接上显示器了。。。:titter:
回复 支持 反对

使用道具 举报

发表于 2021-9-2 16:08:46 来自手机浏览器 | 显示全部楼层
好大…其实我就是好奇,键盘的字符背光,能不能也改成这种,灯随律动
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-2 19:05:50 | 显示全部楼层
本帖最后由 lipeixian 于 2021-9-2 19:08 编辑
ccma1000 发表于 2021-9-2 14:34
128点数据,镜像
顺序写缓冲1;反序写缓冲2
  1. void display(void)
  2. {
  3.         int16_t        i=0;
  4.         uint8_t      x=0;
  5.         uint8_t        y=0;
  6.         uint8_t        temp = 0;

  7. //====================================================
  8.         
  9.         for(i = 1; i < 129; i++)        
  10.         {
  11.                 temp = lBufMagArray[i]/prt;
  12.                 if(temp > 63) temp = 63;        // 限制显示范围
  13.         
  14. //                x = i;                                        //原像
  15.                 x = 128 - i;                //镜像
  16.                 y = 63 - temp;        
  17.         
  18.         //------------------------------------------------               
  19.                 GUI_VLine(x, y, 63, C1);                        //画频柱
  20.                
  21.                 if(Fal_Post[i] > y) Fal_Post[i] = y;        // 更新频柱高度        //画下落的点
  22.                 else
  23.                 {
  24.                         if(Fal_Post[i] > 62) Fal_Post[i] = 62;        // 这里限制一下
  25.                         GUI_VLine(x, Fal_Post[i], Fal_Post[i], 0);
  26.                         Fal_Post[i] ++ ;                                                // 频柱下降
  27.                 }               
  28.         //------------------------------------------------               
  29. //                UG_DrawPixel(x, y-1, C2);                        //画频点
  30. //               
  31. //                if(Fal_Spot[i] > y-1)        Fal_Spot[i] = y-1;        // 更新频点高度
  32. //                else
  33. //                {        
  34. //                        if(Fal_Spot[i] > 62) Fal_Spot[i] = 62;        // 这里限制一下
  35. //                        UG_DrawPixel(x, Fal_Spot[i], 0);        
  36. //                        Fal_Spot[i] ++;
  37. //                }                        
  38.         }
  39. //====================================================
  40.         
  41. //====================================================
  42.         
  43.         for(i = 1; i < 129; i++)        
  44.         {
  45.                 temp = lBufMagArray[i]/prt;
  46.                 if(temp > 63) temp = 63;        // 限制显示范围

  47. //                x = 127 + i;                //128 - 255
  48.                 x = i - 1;                //  0 - 127
  49.                 y = 63 - temp;        
  50.                
  51.         //------------------------------------------------               
  52.                 GUI_VLine(x, y, 63, C1);                        //画频柱
  53.                
  54.                 if(Fal_Post[i] > y) Fal_Post[i] = y;        // 更新频柱高度        //画下落的点
  55.                 else
  56.                 {
  57.                         if(Fal_Post[i] > 62) Fal_Post[i] = 62;        // 这里限制一下
  58.                         GUI_VLine(x, Fal_Post[i], Fal_Post[i], 0);
  59.                         Fal_Post[i] ++ ;                                                // 频柱下降
  60.                 }               
  61.         //------------------------------------------------
  62. //                UG_DrawPixel(x, y-1, C2);                        //画频点
  63. //               
  64. //                if(Fal_Spot[i] > y-1)        Fal_Spot[i] = y-1;        // 更新频点高度
  65. //                else
  66. //                {        
  67. //                        if(Fal_Spot[i] > 62) Fal_Spot[i] = 62;        // 这里限制一下
  68. //                        UG_DrawPixel(x, Fal_Spot[i], 0);        
  69. //                        Fal_Spot[i] ++;
  70. //                }
  71.         }               
  72.                
  73.         RGB_data(DisBUFF_R,DisBUFF_G,DisBUFF_B,40);
  74. }

复制代码


关键代码就是这些,但合起来不行,同时运行了,不知什么问题。
微信图片_20210902190434.jpg
回复 支持 反对

使用道具 举报

发表于 2021-9-3 08:03:29 | 显示全部楼层
        for(i = 1; i < 129; i++)        
        {
                temp = lBufMagArray[i]/prt;
                if(temp > 63) temp = 63;        // 限制显示范围
        
//                x = i;                                        //原像
                x = 128 - i;                //镜像
如果lBufMagArray是128个,        for(i = 1; i < 129; i++)   应该是        for(i = 0; i < 128; i++)   
               x = i;                                        //原像

                x = 255- i;                //镜像
回复 支持 反对

使用道具 举报

发表于 2021-9-6 14:22:13 | 显示全部楼层
挺好的,屏幕是选哪种的?
回复 支持 反对

使用道具 举报

发表于 2021-9-6 21:18:25 | 显示全部楼层
挺好的东西,不错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-10-5 08:49:46 | 显示全部楼层
IMG20211005072518.jpg IMG20211005072509.jpg

做成64点的,效果不错,速度够快,128点做不出来,郁闷:sweat:!!

回复 支持 反对

使用道具 举报

发表于 2021-10-13 11:05:29 | 显示全部楼层
STM没学 想模仿做一个  请教下这个接口定义是怎么的  全彩屏有 R1 G1 B1 R2 G2 B2  A B C  CLK  STR  OE
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2024-5-10 15:40 , Processed in 0.343200 second(s), 13 queries , Redis On.

Powered by Discuz!

© 2006-2023 smzj.net

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