[求助]375模块没有正确往文件中写入内容

375标准模块现在可以工作了,奇怪的是执行完命令: mCmdParam.Write.mSectorCount = 0x1; // 写入一个扇区512字节 i = ExecCommandBuf( CMD_FileWrite, 1, DATA_BUF ); //向文件写入数据 mStopIfError( i ); (其中 DATA_BUF 是数组名字) U盘中产生了文件,但是没有写入内容,文件是空的,这是怎么回事? 生成新文件的命令如下: memcpy( mCmdParam.Create.mPathName, "\\NEWFILE.TXT", MAX_PATH_LEN ); //新文件名,在根目录下 i = ExecCommand( CMD_FileCreate, MAX_PATH_LEN ); // 新建文件并打开,如果文件已经存在则先删除后再新建 mStopIfError( i ); 可以正确产生文件名为NEWFILE的txt文件,但是文件中什么也没有

最后你更新文件长度的时候有没有更新?你可以选择自动更新和手动更新,如果是自动更新的话,那么数据长度是512倍数,如果是手动更新的话,一定要知道你写入的字节数,这个可能和你更新文件长度有关系


在哪手动更新,是更改“mCmdParam.Modify.mFileSize = NewSize;”吗?改变其大小吗?我知道文件有多少子节?


就是这个


试过了,不行。有个问题,MAX_PATH_LEN=32, struct { unsigned char mLastStatus;//* 返回: 上次的操作状态 */ unsigned char mDiskStatus;//* 返回: 磁盘及文件状态 */ unsigned char mIntStatus;//* 返回: CH375操作的中断状态 */ unsigned char reserved; unsigned long mFileSize; //* 返回: 当前文件的长度 */ unsigned long mCurrentOffset;//* 返回: 当前文件指针,当前读写位置的字节偏移 */ } Status; Status的前4个变量就有32个字节,mFileSize是不是出了范围,不起作用了。我的生成的文件大小居然为1G,这显然不对


我改过了“mCmdParam.Modify.mFileSize = 0x00000040”但是结果还是一样的,打开文件时提示说文件太长,无法用记事本打开,查看变量mCmdParam.Modify.mFileSize的值时,发现其并没有改过来,还是原来的值0x00160100,没有更改过来,这是怎么回事呢?


你写一个扇区的话,那么长度应该为0X200


文件大小变成了128kb,打开的时候还是有问题,提示说“文件或目录\NEWFILE.TXT已损坏且无法读取”,怎么解决?


还有什么地方需要修改吗?我是直接创建新文件、写入数据、修改参数、关闭文件的顺序来操作的


你把程序发到:tech@wch.cn,应该是你的程序上面没控制好,你要不先用我们例子程序试下看可以不可以


好的,谢谢!跳线可以生成演示文件,375模块没问题,应该是程序的关系


那你在接到计算机上面看下用我们模块调试工具来调试你的模块看可以不可以运行


出现这个问题有可能是你的模块配置有点问题,你如果使用的不是51单片机的话,例如AVR的单片机,那么你就要将模块配置为小端格式才可以操作


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