能把USB3.0Test_V1.2程序的源码提供一下吗?自己测试怎么都不能达到这个速度,用USB3.0Demo根本达不到这个速度。
你好,我看了CH372DebugTool.zip源码和Usb3.0USB3.0Demo在上位机读取数据代码是一样的,都是使用了CH375ReadEndP函数对USB一直读取。测试速度也是一样的。
能把USB3.0Test_V1.2程序的源码提供一下吗?或是给说一下怎么设计才能达到告诉读取,谢谢
可以先测试一下开启缓冲上传的方式,缓冲区自动接收所有数据,CH375ReadEndP函数对USB一直读取缓冲区的数据。
我测试板上用的是咱们提供的HSPI_USB_SPEED_Test与上位机进行调试的,HSPI_USB_SPEED_Test上传是开启缓冲模式吧
缓冲上传是上位机开的一个功能模式哦,和单片机程序无关。
目前我要测试是上位机从USB读取数据的速度。不知道怎么设置上传缓冲,还希望能给说明一下 谢谢!
CH375ReadEndP与CH375ReadData这两个函数什么区别?
您好。
读数据之前先开启缓冲上传:CH375SetBufUploadEx(设备号, TRUE, 上传端点号, 缓冲上传的单包大小(不得小余64K,端点大小的整数倍))
读数据函数使用这个:CH375ReadData(设备号, Buf, (PULONG)&Length)
读数据结束时关闭缓冲上传:CH375SetBufUploadEx(设备号, FALSE, 上传端点号, 0)
注:1.缓冲上传的开启和关闭不需要每次读取都进行,只需要在读数据之前开启,结束之后关闭就可以;
2.缓冲上传一个设备只能有一个端点开启,多个端点上传另外的端点还是只能使用读端点函数CH375ReadEndP;
3.缓冲上传开启后,对齐指定的端点读数据时用CH375ReadData函数进行,不需要再指定端点号;
CH375SetBufUploadEx这个函数使用需要什么前提吗,当我使用这个函数与CH375ReadData一起使用时,速率只有10M左右,是我使用的不对还是有什么其他问题,代码如下:
if (CH375SetBufUploadEx(0, TRUE, 1, 1024 * 4 * 1024)) {
printf("***start cache device %d\n",0);
}
else
{
printf("start cache defail\n");
}
for (;;) // 循环发送与接收
{
mLength = 4096;
if (CH375ReadData((ULONG)0, mReadBuf, &mLength)) {
if (mLength == 0) {
Sleep(0); //放弃当前线程的时间片,防止CPU出现100%情况
}
}
else
{
printf("*** Endpoint 1 receive failed! ***\n");
system("pause");
Sleep(1000);
return;
}
CH375SetBufUploadEx(0, false, 1, 0);
上面这段代码有什么问题吗?
目前看代码段没有问题,可以电话联系我:025-52635387 或者给我发送邮件:dxy@wch.cn