现在是移植了FATFS文件系统后成功格式化,读文件,创建文件和显示剩余空间都正常,根据战舰开发板USB代码修改的代码移植后能够成功识别盘符,但是打开后里面有二十几个2G的文件(256的Flash只有32M),下面是代码
看了原子兄的代码后自认为这里是最重要的
Mass_Memory_Size[0] = 1024*1024*32;//32M字节
Mass_Block_Size[0] = 512;
Mass_Block_Count[0] = Mass_Memory_Size[0] / Mass_Block_Size[0];
因为不需要用到SD卡所以改了一下数组下标,可移动磁盘个数的宏也修改为0,mass_mal中的read和write内容也改为
case 0:
STA=0;
SPI_Flash_Write((u8*)Writebuff, Memory_Offset, Transfer_Length);
case 0:
STA=0;
SPI_Flash_Read((u8*)Readbuff, Memory_Offset, Transfer_Length);
不知道Read_Memory和Write_Memory需不需要修改,我的一个块的size是65536,Mass_Block_Size[0]为512时就会出现前面说到的有几十个2G文件的情况,如果改为65536那么PC机上可移动磁盘的大小就为0,原子兄的代码在Mass_Block_Size[0]后的注释说Mass_Block_Size[0]是init中定了的512,不知道是不是需要把这个定长的512修改一下,请教一下各位大哥解决的办法!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2、具体可以参考原子哥的读卡器实验或者这个帖子http://www.openedv.com/posts/list/27484.htm中的战舰读卡器实验工程
---------------------------------
1、你要明白0对应的是SD卡,1对应的才是flash
2、加上你上面出现了两个case 0: 这个语句,编译的时候应该会报警的
3、你用的是原子哥的Mini板子???战舰板子???还是自己画的最小系统板子
case 0:
STA=0;
SPI_Flash_Write((u8*)Writebuff, Memory_Offset, Transfer_Length);是在MAL_Write函数中
自然在MAL_Read函数中就是第二个case 0
case 0:
STA=0;
SPI_Flash_Read((u8*)Readbuff, Memory_Offset, Transfer_Length);
我用的是自己的板子,Flash是直接焊上去的
---------------------------------
1、你这样的话程序选择哪个呢?
switch(*****)
{
case 0:
*******
break;
case 0:
*******
break;
*****
}
2、你想将FLASH的写到0项上面去,记得好像要在USB操作里面修改代码的,具体也记得不清,你可以goto看下
3、或者你试下直接就将FLASH的添加到那个0项上面,1项直接break(或者不写),将这个宏定义改为这样#define MAX_LUN 0
一周热门 更多>