stm32 nor flash fats 文件系统加载失败问题

stm32 nor flash文件系统加载失败解决

问题现象

在使用STM32F407 + W25QXX nor flash + fats文件系统中发现,每次stm32 + nor flash复位后,第一次挂载文件系统总是失败,提示没有安装文件系统,看日志,复位之前是挂载成功的,为什么复位一下之后,就没有文件系统了呢?还以为是文件系统移植有问题,然后就追踪代码,发现文件系统有无的判断总体流程是这样子的:首先挂在文件系统的时候,文件系统会从默认的扇区0读取整个扇区数据,识别第510字节是否为0xAA55,如果识别到了,继续判断文件系统的字符串,都识别到了,就认为该flash已经有文件系统了,但问题是,每次复位后,第一次发送读取0扇区的指令,读取出来的数据全是0xFF,百思不得其解,还以为是文件系统做了擦除的动作,跟踪代码,发现没有擦除过,那么是什么原因呢?我就在挂载文件系统之前,调用读取0扇区的接口,发现读取出来的还是0xFF,但是关键来了,后续挂载文件系统又正常了,难道每次挂载文件系统之前,我都要先手动调用一次读取才行?后续经过多次测试,发现在挂载文件系统之前,发送任何指令,都能使得文件系统挂载成功,难道flash在正式使用之前需要激活一下?

原因总结

然后百度了一下,我觉得有一种说法比较靠谱,那就是:
通讯开始前需要先清空移位寄存器里面的数据,因为很有可能W25Qxx数据寄存器中保存了数据,所以先发送一个Dummy数据,让从机移位数据寄存器把数据发出来,然后再发送指令集,其他品牌flash估计也差不多,可能没仔细看数据手册,卡了一天。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值