能否讲解下这个函数
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();
}
|