学前班
最后登录1970-1-1
在线时间 小时
注册时间2017-2-16
|
在看例程,遇到个问题,不知道是不是我理解错误,
这个代码中 写数据时候 flash只被擦除了一个扇区,而如果count的数量大于1的话 是不是后面的扇区都没被擦除啊?
DRESULT disk_write (
BYTE pdrv, /* é豸Îïàí±àoÅ(0..) */
const BYTE *buff, /* óûD′èëêy¾YμÄ»o′æÇø */
DWORD sector, /* éèÇøê×μØÖ· */
UINT count /* éèÇø¸öêy(1..128) */
)
{
uint32_t write_addr;
DRESULT status = RES_PARERR;
if (!count) {
return RES_PARERR; /* Check parameter */
}
switch (pdrv) {
case ATA: /* SD CARD */
break;
case SPI_FLASH:
/* éèÇøÆ«òÆ6MB£¬ía2¿FlashÎļtÏμí3¿Õ¼ä·ÅÔúSPI FlashoóÃæ10MB¿Õ¼ä */
sector+=1536;
write_addr = sector<<12;
SPI_FLASH_SectorErase(write_addr);
SPI_FLASH_BufferWrite((u8 *)buff,write_addr,count<<12);
status = RES_OK;
break;
default:
status = RES_PARERR;
}
return status;
} |
|