完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
U盘数据:
*S* 00000000000 11111111111 22222222222 33333333333 44444444444 55555555555 66666666666 77777777777 88888888888 99999999999 AAAAAAAAA BBBBBBBBBB CCCCCCCCC DDDDDDDD EEEEEEEEEEE FFFFFFFFFFF *E* 用例程U_DISKEXAM1 + UFX库读取,每次64个字节,第一次和第二次正确,第三次数据错误,为何? 第一次: Read Bytes Amount: 64 *S* 00000000000 11111111111 22222222222 33333333333 4444444 第二次: 4444 55555555555 66666666666 77777777777 88888888888 999999 第三次: USBC9 ADDDDDDDD EEEEEEEEEEE UINT8 USBGetData(PUINT8 buf) { UINT8 s, i, k, len; //每次读n个字节 UINT8 TotalCount = fieldlen; memset(buf, 0, sizeof(buf)); k = 0; printf("Read Bytes Amount: %02dn", (UINT16)TotalCount); while(TotalCount) //如果文件比较大,一次读不完,可以再调用CH559ByteRead继续读取,文件指针自动向后移动 { if(TotalCount > (MAX_PATH_LEN - 1)) { len = MAX_PATH_LEN - 1; //剩余数据较多,限制单次读写的长度不能超过 sizeof( mCmdParam.Other.mBuffer ) } else { len = TotalCount; //最后剩余的字节数 } mCmdParam.ByteRead.mByteCount = len; //请求读出几十字节数据 mCmdParam.ByteRead.mByteBuffer = &buf[k]; s = CH559ByteRead(); //以字节为单位读取数据块,单次读写的长度不能超过MAX_BYTE_IO,第二次调用时接着刚才的向后读 TotalCount -= mCmdParam.ByteRead.mByteCount; //计数,减去当前实际已经读出的字符数 for(i = 0; i != mCmdParam.ByteRead.mByteCount; i++) { printf("%C", mCmdParam.ByteRead.mByteBuffer); //显示读出的字符 } if(mCmdParam.ByteRead.mByteCount < len) //实际读出的字符数少于要求读出的字符数,说明已经到文件的结尾 { printf("n文件已经结束n"); break; } k += len; } printf("nVerify: "); printf(buf); return TotalCount; } 为何? 就是连续调用三次这个函数,然后第三次数据读出来是错误的,不知道原因在哪里?请教。 |
|
相关推荐
1个回答
|
|
|
U盘文件系统库以子程序库的形式提供使用,文件系统库的使用可以参考U_DISK下各个EXAM
|
|
|
|
|
只有小组成员才能发言,加入小组>>
347 浏览 0 评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
861 浏览 0 评论
1461 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
3417 浏览 2 评论
2822 浏览 1 评论
安卓手机支持外接otg扩展坞 然后使用ch340+ch9329控制电脑吗
1808浏览 1评论
1461浏览 1评论
348浏览 0评论
CH582M HOST发送数到设备后,提交IN一直是2A是什么问题?
863浏览 0评论
468浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 06:25 , Processed in 0.700733 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
948