[求助]CH374ByteWrite的问题

我用374的字节操作写100k的文件 程序如下: MAX_PATH_LEN这个改成129了 TotalCount = 102400; while(TotalCount > 0) { for ( i=0; i { if ( TotalCount == 0 ) break; mCmdParam.ByteWrite.mByteBuffer[ i ] = 0x30; TotalCount--; } if ( i == 0 ) break; mCmdParam.ByteWrite.mByteCount = i; c = CH374ByteWrite( ); mStopIfError( c ); }

现有奇怪的问题: 文件能够生成,里面应该都是0x30的 但是每次到4096个字节就会有几个0x00 而且每次个数并不相同 请问我哪里写错了么? 201211216311863.jpg 20121121631423.jpg

问题找到了 pDISK_BASE_BUF 是这个东西在惹事! 374的库在调用pDISK_BASE_BUF 数据缓冲区要完全独立就没事了

mCmdParam.ByteWrite.mByteBuffer = 0x30;

这是什么意思?你把一个指针赋值0X30,不代表mCmdParam.ByteWrite.mByteBuffer内容为0X30。你看一下C语言的指针


不好意思 修改帖子缩进的时候误删了 mCmdParam.ByteWrite.mByteBuffer[i] = 0x30; 刘工别激动么


我擦…… 建议刘工看看论坛的后台 mCmdParam.ByteWrite.mByteBuffer[ i ] = 0x30; [ i ](不含空格)居然没了 我编辑帖子还是有的 显示居然没了


你用的是什么单片机啊?还有每次写数据都监控下你的数据是否都是0X30


我用stm32模拟spi的 字节读取没问题

刚才用串口监控了mByteBuffer[ 0 ]和mByteBuffer[ MAX_BYTE_IO - 1 ] 数据没有异常

还有修改MAX_PATH_LEN后发现 不管怎么改,到了0x1000,0x2000...文件内必定有异常数据

另外试了几个u盘,都有这个问题 有一点差异就是有的u盘显示乱码,不是0x00 还有就是不同u盘乱码的个数也不相同


你去监控下变量i每次是多少?


试过了 写8k的数据 MAX_PATH_LEN定义129 i是128 到了0x1000就变0x00了 串口数据没问题


我把代码和生成的文件上传在贴里了 请工程师帮我看一下吧


没看到你的程序。一般只有在缓冲区出现问题的时候才会出现你说的上述现象。


在楼底 UploadImages/201211313455953.rar


怎么下载不下来? 有没有上传?


您这问题………… 我已经发您邮箱了


不还意思,邮件收到了,拿你的工程修改了下时序以及优化级别,还有把你的写程序修改了下。你测试下看是否可以。


求助啊,修改后还是一样问题

试过关闭文件后再打开 并且通过CH374ByteLocate继续添加 还是不行 到了0x1000总有一组数据(MAX_BYTE_IO大小一致)写不进去(乱码) 然后到了0x2000,0x3000都是一样的问题


现在解决办法只能算好位置 到了0x1000就写一个数据 然后继续操作,其他数据就没有问题了 请各位工程师看看应该怎么解决这问题??


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