[求助]如果单片机向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是不是在直接处理总线协议呀?是不是自动读取数据了?
============================ 长沙三德实业有限公司 ============================