我将FILE_DATA_BUF与DISK_DATA_BUF共用,首先,将数据写到缓冲区,然后设置写入扇区数mCmdParam.WriteX.mSectorCount = 1;再保存缓冲区起始地址mCmdParam.WriteX.mDataBuffer = &FILE_DATA_BUF[0];最后调用CH375FileWriteX();调用CH375FileWriteX()前还调用了CH375DirtyBuffer();但最后文件的结果是在512个数据中有一块连续的数据不对,而且每个512个数据的块中都有这样的数据出现,数据也完全一样,请教下是什么问题?[Emot]1[/Emot]
查看: 2665
回复: 5
FILE_DATA_BUF与DISK_DATA_BUF共用问题
热门产品 :
CH397: 高集成度、低功耗USB网卡芯片
我在描述下:存512个数据后调用CH375FileWriteX()将512个数据写到文件,这样每写8个数据块(一个数据块512字节),再写第九个数据块就会出现一个块的数据是错的,错误的数据块的数据全部一样,但如果不共用FILE_DATA_BUF与DISK_DATA_BUF则不会出现这种情况,这是为什么呢?求解决!!
你这个错误是有规律的,每一个扇区会出错,你去下载CH375LIB.ZIP,里面在MCS51/FILELIB4/EXAM3这个例子就是磁盘缓冲区与文件缓冲区共用的例子,你可以参考。
就是参考/EXAM3做的,是不是要用CH375HF4.lib这个库,不能用CH375HF6.lib啊?
这两个没什么区别,只是对应的.H需要一致。
看来只能在外面加RAM了
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录