UploadImages/WCH20061017162851.rar
文件在这里,一般写2K后就比较容易出现,用的U盘是清华紫光的。
UploadImages/WCH20061017162851.rar
文件在这里,一般写2K后就比较容易出现,用的U盘是清华紫光的。
说一下,USB电压为4.9V。测试的时候也用过延时,没有效果!请冯工等帮忙看看。
这个writeFileByte()函数可以看下吗?
unsigned char writeFileByte(char * buf, uchar writeBytes, uchar * retBytes) { unsigned char xdata ret, i, j;
i = 0; do { j = (writeBytes - i > MAX_BYTE_IO) ? MAX_BYTE_IO : (writeBytes - i); //每次能写入的最大字节数
mCmdParam.ByteWrite.mByteCount = j; memcpy(mCmdParam.ByteWrite.mByteBuffer, buf + i, j); ret = CH375ByteWrite();
if (ERR_SUCCESS != ret) break;
i += j; // 指向当前待写入的位置 } while (i < writeBytes);
*retBytes = i;
return ret; }
unsigned char modifyFileDate(void) { mCmdParam.Modify.mFileDate = MAKE_FILE_DATE((uint)now_time.year, now_time.month, now_time.day); mCmdParam.Modify.mFileTime = MAKE_FILE_TIME(now_time.hour, now_time.minute, now_time.second); mCmdParam.Modify.mFileSize = 0xffffffff; /* 不修改文件长度 */ mCmdParam.Modify.mFileAttr = 0xff; /* 不修改文件属性 */
return CH375FileModify(); }
unsigned char readFileByte(char * buf, UINT8 readBytes, UINT8 * retBytes) { unsigned char xdata ret, i, j;
i = 0; do { j = (readBytes - i > MAX_BYTE_IO) ? MAX_BYTE_IO : (readBytes - i); // 每次能读出的最大字节数
mCmdParam.ByteRead.mByteCount = j; ret = CH375ByteRead();
if (ERR_SUCCESS != ret) break;
memcpy(buf + i, mCmdParam.ByteRead.mByteBuffer, mCmdParam.ByteRead.mByteCount); i += mCmdParam.ByteRead.mByteCount; //指向当前待读取的位置
if (j > mCmdParam.ByteRead.mByteCount) // 已读到文件的结尾 break;
} while (i < readBytes);
buf[i] = '\0'; *retBytes = i;
return ret; }
原来是数据的长度超过了30字节。