你好!如果我写的小于 12KB
#MSD工作正常。如果我写入超过 12KB,Windows7 会要求我格式化驱动器。如果 MSD 没有重新连接到 PC,一切正常。如果我将设备重新连接到 PC,一切都会崩溃。请告诉我可能出了什么问题?
我正在使用页面大小为 264 B(2048 页)的闪存 [AT45DB041]
定义看起来像这样
存储_BLK_NBR 1024
STORAGE_BLK_SIZ 512
写操作看起来像这样
int8_t STORAGE_Write_FS(uint8_t lun,uint8_t *buf,uint32_t blk_addr,uint16_t blk_len)
{
/* 用户代码开始 7 */
AT45dbxx_WritePage(buf, 256, (uint16_t)blk_addr*2);
AT45dbxx_WritePage(buf+256, 256, ((uint16_t)blk_addr*2)+1);
返回(USBD_OK);
/* 用户代码结束 7 */
}
我写了两页 256 字节
W/R 内存操作正常。
内存寻址也能正常工作。检查所有 2048 页的读/写