CH376主机模式(用单片机控制)打开文件的时候 返回02[求助]

关于写的这个问题:因为我重新换上一行汉字的时候是能够正常写进去的,直接对缓冲区buf赋值也是可以正确写入的,但是我用strcpy这个函数测试了好多个汉字的写入,大部分还都能正确写对的(但是数据这两个字一有就会出错),而且写完之后不报错,可以正常保存关闭文件,但是有一点,一次超过30个以上的字符往文件里写的话 就写不进去

但是关于读的函数为什么会出现像我11楼所说的那种情况,有可能的原因是什么? 除了11楼处我提出的现象,还有 要求29及以上的字节的时候,他都只会读出来28个字节 要求32个及以上的时候,返回FA,当然屏蔽报错程序后会显示出读出来的28个字节 只有要求29,30,31的时候才不会报错,而且能正确读出28个字节

打开文件后读取字节的过程如下,也只直接copy网站上的程序 mStopIfError( s ); TotalCount = 30; /* 准备读取总长度 */ printf( "从文件中读出的前%d个字符是:\n",(UINT16)TotalCount ); while ( TotalCount ) { /* 如果文件比较大,一次读不完,可以再调用CH376ByteRead继续读取,文件指针自动向后移动 */ if ( TotalCount > sizeof(buf) ) i = sizeof(buf); /* 剩余数据较多,限制单次读写的长度不能超过缓冲区大小 */ else i = TotalCount; /* 最后剩余的字节数 */ s = CH376ByteRead( buf, i, &RealCount ); /* 以字节为单位读取数据块,单次读写的长度不能超过缓冲区大小,第二次调用时接着刚才的向后读 */ mStopIfError( s ); TotalCount -= (UINT8)RealCount; /* 计数,减去当前实际已经读出的字符数 */ for ( s=0; s!=RealCount; s++ ) printf( "%C", buf[s] ); /* 显示读出的字符 */ if ( RealCount < i ) { /* 实际读出的字符数少于要求读出的字符数,说明已经到文件的结尾 */ printf( "\n" ); printf( "文件已经结束\n" ); break; } } printf( "Close\n" ); s = CH376FileClose( FALSE ); /* 关闭文件 */ mStopIfError( s );


??


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