极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

VS1003+SD卡播放MP3文件

[复制链接]
发表于 2013-5-14 20:03:26 | 显示全部楼层
能否讲解下这个函数
void play(char* playplay){
  int val,i;
  mp3=SD.open(playplay);
  delay(10);
  for(i=0;i<548;i++){                    //这个循环起什么作用啊 548代表什么,为什么是548
    digitalWrite(sspin,HIGH);          //sspin脚H,是不是片选了SD卡模块
    val =mp3.read();                      // 是不是从打开的MP3文件一个字节一个字节的赋值给变量val
    digitalWrite(xDcs,LOW);           //xDcs为LOW时,是不是片选VS1003
    SPI.transfer(val);                      // 这句是不是将VAL的值送给VS1003
    digitalWrite(xDcs,HIGH);            // 这句是不是将VAL的值送给VS1003
    digitalWrite(sspin,LOW);
  }
  if(DREQ==HIGH){                      //这段函数起什么作用
    while(mp3.available()){
      for(i=0;i<32;i++){                 //32是怎么来的
        digitalWrite(sspin,HIGH);      
        val =mp3.read();
        digitalWrite(xDcs,LOW);
        SPI.transfer(val);
        digitalWrite(xDcs,HIGH);
        digitalWrite(sspin,LOW);
      }
      delayMicroseconds(35);
    }
  }
  mp3.close();
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-15 09:41:27 | 显示全部楼层
万马奔腾 发表于 2013-5-14 20:03
能否讲解下这个函数
void play(char* playplay){
  int val,i;

第一段for函数是进行MP3的初始输入。548是考虑到文件输入速度,文件处理速度,以及存储空间(vs1003内建了512字节的存储空间)的出的经验值。 就是说当装载512字节后, 前面的部分已经被处理了。于是干脆直接输入更多的字节。
第二段if函数是将剩余的MP3输入用的。根据vs1003的芯片文档,当DREQ的引脚呗拉高时,说明至少有32字节的空余空间了。以此为依据开始进行文件的继续输入。在MP3没播完的情况下,持续输入。delayMicroseconds(35);是卡一个正好处理完32字节的timing。这样不会跳出。。
回复 支持 反对

使用道具 举报

发表于 2013-5-16 22:13:26 | 显示全部楼层
用NANO怎么接线呢,与UNO一样的接线吗?看资料没有找到的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-17 21:11:22 | 显示全部楼层
万马奔腾 发表于 2013-5-16 22:13
用NANO怎么接线呢,与UNO一样的接线吗?看资料没有找到的

你主要查询一下 nano的spi是如何连接的就行
其他的线随意接
回复 支持 反对

使用道具 举报

发表于 2013-5-28 18:01:47 | 显示全部楼层
commad(0X0B,volume,volume);//音量最高0x0000音量最低0xFEFE
这句是不是将值为OX3030 赋给 对应的寄存器啊 (int volume=0x30;//set volume here )
回复 支持 反对

使用道具 举报

发表于 2013-6-1 21:00:34 | 显示全部楼层
SPI.setClockDivider(SPI_CLOCK_DIV16);
commad(0X03,0XC0,0X00);//设置VS1003的时钟
设置SPI串行通信时钟和时钟VS1003的时钟有什么联系 如果都设置高有什么影响 比较SPI-CLOCK-DIV128 和VS1003的时钟设置0XFFFF 有什么影响?
主要问题:
1.SPI串行时钟和VS1003时钟有联系吗?之间是什么关系
2.每个均设为最大值,可以吗?还是有什么依据
回复 支持 反对

使用道具 举报

发表于 2013-11-26 14:31:15 | 显示全部楼层
本帖最后由 xc145632 于 2013-11-26 14:39 编辑

為什麼我照上面的用完之後都沒有聲音(我用的是ARDUINO+vs1003+sd卡)

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2013-12-23 16:15:55 | 显示全部楼层
vs1003可以驱动小喇叭么?
回复 支持 反对

使用道具 举报

发表于 2016-5-14 10:23:53 | 显示全部楼层
为什么只有莎莎的声音,我用的是uno

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-2 11:49 , Processed in 0.038860 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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