现在是移植了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修改一下,请教一下各位大哥解决的办法!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
不知道你弄好了没有,我的是支持4地址模式的,Flash的手册上有说的这是我的4地址模式代码你这样做就开启了4地址模式了,然后直接可以用4地址进行访问后面的内存。
#define W25Q_4ByteAddrModeEnable 0xB7
void Enter4ByteAddrMode(void)
{
SPI_FLASH_CS=0; //使能器件
SPI2_ReadWriteByte(W25Q_4ByteAddrModeEnable); //进入4Byte地址模式W25Q128以上使用
SPI_FLASH_CS = 1;
}
一周热门 更多>