打印
[Kinetis]

【YL-KL26Z开发】+ 简易WAV音乐播放器

[复制链接]
831|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Messi1999|  楼主 | 2015-12-15 19:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
由于暑假提前回家了,所以在我将大部分模块调试过后,本来要按计划进行的,但是发现还有几天就要回家,因此就直接跳过第二步,改为直接上手调试我之前想过的东西,也就是音乐播放器。
    就这么花了大约20几天的时间,现在已经基本实现了所有功能。本来只需要两个星期就可以完成的任务,由于在家中效率实在太低,因此浪费了时间。

     正文

      在此我会简单描述具体实现的功能,以及需要改进的和不足的地方。

     实现功能:
     1.SD卡读取WAV文件。
     2.PIT+DAC播放WAV文件
     3.OLED通过调用外部FLASH中的字库显示歌曲名称。
     4.TSI控制歌曲实现暂停/播放、上/下曲切换。

    不足之处:
     1.无法实现通过I2S来进行播放音频文件。
     2.SD卡读取文件名为短文件名,无法读取长文件名,导致OLED只显示6个字节(即三个汉字)。
     3.SD卡每次读取固定大小的数据放入缓冲数组,导致在每次一组数据使用完毕后,在重新读取的间隔中会使扬声器长生咔哒的声音。
     4.OLED无法混合显示汉字和英文。

相关帖子

沙发
Messi1999|  楼主 | 2015-12-15 19:58 | 只看该作者
程序中的PIT、DAC、ADC、TSI、SPI在之前的测试中都已经调试过,需要了解的可以看我之前的帖子。
     
     需要说明的是SD和OLED,以及各个标志位的处理。
     
     SD:这里的难度很高,到目前为止,我只是会简单的根据之前论坛网友的程序进行简单的修改,我只是懂了一些皮毛,如果需要深入学习,我是帮不上忙的。

    OLED:
    1.字库的下载以及调用。
         可以通过SD读取字库文件,之后通过SPI烧写至外部FLASH中即可。
         字库的调用可以通过C语言中汉字的内码,进而根据字库的规则可以很简单的找到所需要的数据。
         注:这里如果有网友需要我会重开一贴,详细的介绍本模块。由于附件上传限制,我在网盘分享一个字库软件。
         http://pan.baidu.com/s/1jGzqFAY      
      2.汉字的显示。
         这里的内容在我之前的贴子   【YL-KL26Z开发】+ SPI驱OLED     中有详细的介绍,这里就不再多提。

使用特权

评论回复
板凳
Messi1999|  楼主 | 2015-12-15 20:03 | 只看该作者
标志的处理:
      我个人认为本程序最关键的部分就是各个标志的配置,正是这样才会实现以上的歌曲切换的功能。
      在程序中我设置了许多标志,在这里主要说明几个:
      1.flag、flagpause、flagnext、flaglast     以上的标志会通过TSI来控制歌曲的变化
         flag:当上/下曲标志置位时,该位置0,读取数据的循环就会跳出,再通过加减歌曲名指针大小来切换歌曲。
         flagpause:通过该位的变化来控制音频数据数组指针是否加一,进而控制音频暂停。
         flagnaex\flaglast:判断是否置位flag,以及是否将歌曲名指针加减。
      2.enable:当数据缓冲数组满且数据指针未到最大时,该位为0,将会禁止读取歌曲数据。
      3.error:通过与文件大小转换后的值进行比较,可以大致判断歌曲是否播放完毕,进而跳出循环继续播放下一曲。

使用特权

评论回复
地板
Messi1999|  楼主 | 2015-12-15 20:05 | 只看该作者
工程和流程图

流程图.pdf

50.16 KB

SD.zip

3.37 MB

使用特权

评论回复
5
Messi1999|  楼主 | 2015-12-15 20:05 | 只看该作者
KL26Z的调试基本完成了,通过这一个多月的学习,对ARM以及飞思卡尔的ARM系列MCU有了许多认识。
          上面说过本程序有许多需要改进的地方,希望广大网友可以和我一起学习,共同进步。
          当然我也不会将这块板子扔下不管,后面我还会对I2S进行深入的研究,希望广大网友可以不吝赐教。

使用特权

评论回复
6
王培1| | 2015-12-18 08:48 | 只看该作者
字库连接没有了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

363

帖子

1

粉丝