关于CH378操作文件的一些疑问,希望能得到解答或者排查思路,谢谢了

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执行后得不到中断的情况,或者是打不开文件。

还有就是,一般的写入成功后,或者文件操作成功后,有必要加一个较大的延迟来停止一切操作吗。如果要的话,多大的延迟合适呢



只有登录才能回复,可以选择微信账号登录