用的是SPI2去读写SD卡, 移植了FATFS文件系统
SPI2时钟设置为: SPI2_SetSpeed(SPI_BaudRatePrescaler_2); // #define SPI_BaudRatePrescaler_2 ((uint16_t)0x0000)
速度慢的主要原因都是在
while(1)//查询总的有效文件数
{
res=f_readdir(&tdir,&tfileinfo); (此处耽误很多时间) //读取目录下的一个文件
if(res!=FR_OK||tfileinfo.fname[0]==0)break; //错误了/到末尾了,退出
fn=(u8*)(*tfileinfo.lfname?tfileinfo.lfname:tfileinfo.fname);
res=f_typetell(fn);
if((res&0XF0)==0X40)//取高四位,看看是不是音乐文件
{
rval++;//有效文件数增加1
}
}
不知道到底怎么么回事,SPI和SDIO的速度差别真的那么大吗?
|