野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10348|回复: 2

外接flash挂载fatfs中,disk_write中的扇区擦除数量问题?

[复制链接]
发表于 2019-9-7 12:32:56 | 显示全部楼层 |阅读模式
在官方提供的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.是不是擦除扇区那里就要改写一下。

11.png
回复

使用道具 举报

发表于 2022-9-2 00:59:27 | 显示全部楼层
看到之前其他帖子大佬的回复:fatfs里,disk_writed的参数count一直都是1,默认的
回复 支持 反对

使用道具 举报

发表于 2022-9-4 11:10:25 | 显示全部楼层
哪里能看出来count是1呢?没有发现
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-7 02:48 , Processed in 0.046905 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表