在官方提供的stm32外接FLASH挂载fatfs的代码中,disk_write函数有下面两句代码:
SPI_FLASH_SectorErase(sector*4096);
SPI_FLASH_BufferWrite((u8*)buff, sector*4096, count*4096);
在第二行中的这个代码中,count代表了要写的sector的数量,在写之前应该擦除这些扇区,但是在扇区擦除的时候却只擦除了一个扇区,对其他的扇区没有进行擦除,这个时候心中就有点儿疑问。
但是呢,在看到disk_ioctl中的:
case GET_BLOCK_SIZE :
*(DWORD * )buff = 1;
在这里定义了buff的数量为1。是在这里设置了为1之后擦写就可以只擦除一个扇区吗?如果这里将buff = 2.是不是擦除扇区那里就要改写一下。 |