SPI、1M、模式0x06、U盘两个都是fat32,一个是16G、另一个32G,分配单元大小都试过4096Bytes和64k。只关心文件打开和数据写入。有正常写入过,而且可以打开TXT读出来数据是正常的。(另外查看SPI的波形,确实存在比较小的失真,但实际上写入成功的情况也存在失真,不清楚这里的影响是否会很大)
1、有时候在操作打开根目录的时候,命令0x32的中断状态读出来是文件已关闭0xb4
2、关闭某个文件之后再次调用命令0x36后可以读出中断状态是文件已关闭0xb4,但是再次调用命令0x32逐级打开的时候,目录的每一级返回终端状态都是文件已打开0x41.这里不是很理解,有时候写入的数据不能正常保存,不清楚是否与这里有关。正常不应该是关闭后,执行0x32再次尝试打开的时候会回操作成功0x00。
3、还有一个问题是,有时候调用写入的时候会出现ch378给中断信号。写入的指令顺序用的是:定位指针0x39 -> 取得缓存偏移地址0x2e -> 写入的数据长度和数据发送 -> 执行写入0x3C。这之中的某个地方一定时间(一两秒吧)内没有得到正确的中断信号回复就会从头开始重试,循环执行几次后会出现一直等不到执行写入0x3C的回复的情况,之后就算是成功关闭文件,再次打开文件,再次回来重试也无法等到正确的回复。
4、关闭文件之后顺带使用0x59指令对磁盘状态进行刷新会有什么不好的影响吗。
5、还有的时候会创建出名如“DATA.TXT”的文件夹,没有很理解,有没有什么办法可以避免。
6、3中描述的写入过程因为要循环操作写入大量的数据。(每次数据量大概是百kBytes级别,测试的时候是十kBytes级别,实际上这里得到的结果都一样)。尝试过每次写入一定量的数据(200kBytes)重新关闭打开文件,结果是有可能文件打不开,有时也还会出现命令0x3C写入回复状态0x01(这里最不理解)。尝试每次写入成功后都重新关闭并打开文件,一样会出现写入指令0x3C执行后得不到中断的情况,或者是打不开文件。