我用CH375B读文件返回文件长度不对,读小文件正常,读一个1.71M的文件,文件名是10000w.jc5,返回的CH375vFileSize只有0X7777,请教是哪里的问题? i = CH375FileOpen( ); /* 打开文件 */ df=(UINT16)(CH375vFileSize); dg=(UINT16)(CH375vSectorSize);
df返回0X7777,实际文件长度是1.71M,不知哪里有错?谢谢
我用CH375B读文件返回文件长度不对,读小文件正常,读一个1.71M的文件,文件名是10000w.jc5,返回的CH375vFileSize只有0X7777,请教是哪里的问题? i = CH375FileOpen( ); /* 打开文件 */ df=(UINT16)(CH375vFileSize); dg=(UINT16)(CH375vSectorSize);
df返回0X7777,实际文件长度是1.71M,不知哪里有错?谢谢
首先您的文件名不对,文件名需要全部大写。你可以这样做下试验。比如你用PC建个文件,往文件写入一些数据,数据长度从1--1024字节,看能不能读出文件的长度
不行。我把文件名改为大写的,读出的CH375vFileSize还是0X7777。 我读几K的文件返回的CH375vFileSize是对的。读大的文件才出错,是不是读的文件有什么限制?
问下你用的什么单片机?你需要确定打开文件成功之后在判断CH375vFileSize和CH375vSectorSize这2个变量。2个变量一个是LONG型变量,一个是SHORT型变量。
单片机用的STM32的ARM103ZET6。 i = CH375FileOpen( ); i返回的是0,应该是成功。 UINT32 df; UINT16 dg; df=(UINT16)(CH375vFileSize); dg=(UINT16)(CH375vSectorSize); df返回的还是0x7777. 还有别的原因吗?谢谢
你监测下文件在多大时你的容量就开始读错?! 你把CH375vFileSize放在“字”对齐的地址上去试试
不好意思,CH375vFileSize是库里面的变量,应该在字对齐的地址上,你可以看下MAP文件看是不是在以字对齐的地址上
应该是长度在65535以内的都读的对,而长度超过的都读错了。就是大于16位的高位都没读出来。我那个错的文件长度是1800055个字节,换算成16进制是1B7777,返回了0x00007777,我定义的变量长度应该没问题,不知怎么回事? UINT32 df; UINT16 dg; i = CH375FileOpen( ); df=(UINT16)(CH375vFileSize); dg=(UINT16)(CH375vSectorSize);
另外“你把CH375vFileSize放在“字”对齐的地址上去试试”,这句话怎么理解,能给个定义或提示吗? 谢谢
按照df=(UINT16)(CH375vFileSize);你认为取出这个值是16位还是32位? 应该这样修改看下:df=(UINT32)(CH375vFileSize); 还有需要看下你的监控手段是什么?仿真器还是串口跟踪?