[求助]关于CH372连续上传数据时,数据被覆盖的问题

[求助]如果单片机向CH372端点2写入的字节长度小于64,并且PC端还没来得及调用CH375ReadData读,而单片机在收到USB_INT_EP2_IN中断后又再次向CH372端点2写入了新的数据,这时PC端会不会把第一次收到的数据覆盖掉? (贵公司的PC驱动中,对CH375ReadData的说明不很详细。) 谢谢。

是啊! 同问!


对于USB传输,设备始终是被动的。只有主机端发起读或写的操作时,数据才会在总线上通过。那麽既然你都没有去读上传数据。下位机肯定也没有将缓冲区的数据上传,所以单片机也不可能收到上传完成中断。至于数据覆盖不覆盖,这完全是你写程序的问题。假如上次上传还没完成,你就将下次的数据写进去了,那麽结果就是部分或者全部上次上传数据被覆盖。


那你的意思是说:使用贵公司提供的驱动程序所提供的API接口函数时,只要主机端不去读数据,单片机就一定不可能收到上传完成中断了吗(即使如果单片机向CH372端点2写入的字节长度小于64)? 项目时间紧,请给予确切答复。谢谢!


应该是不调用所有上传数据的函数。比如说你不调用CH375ReadData而调用CH375WriteRead那麽照样可以在计算机端收到上传中断


还有,如果您使用新版驱动的“缓冲上传”模式,那么驱动程序会自己替应用程序上传并暂存的计算机内存中,在内存中按接收顺序以链式排列,不会相互覆盖,然后等应用程序需要时调用readdata取走。当然默认情况下,“缓冲上传”是禁止的,而是启用“立即上传”模式,也就是应用程序调用readdata直接从USB接收数据


怎样设置“缓冲上传”模式和“立即上传”模式呢?


贵公司的哪篇文档上介绍了“缓冲上传”模式和“立即上传”模式? 怎样设置“缓冲上传”模式和“立即上传”模式呢?


没有发现啊!!


是驱动程序中实现的功能,与芯片无关,之前只能立即上传。下载CH372驱动看 CH375DLL.H 文件中简单说明,或者下载CH372评估板资料中SPEED372.C程序,利用“缓冲上传”测试上传速度,


我在使用缓冲上传方式时发现数据速度比以前要快。但读到的数据与下位机发送的不一样!!! 用BUS BOUND抓取 到的数据却是正确的!!! 我该如何处理? OS是不是在直接处理总线协议呀?是不是自动读取数据了?

============================ 长沙三德实业有限公司 ============================


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