一个概念性的小问题:使用端点2传输数据,例如单片机发送数据,PC机接受数据。如果由于某些原因PC机接收速度比较慢,跟不上单片机发送数据的速度。那么数据会不会因此而丢失?也就是说,在PC机来不及接收的时候,单片机是否还是不断往USB的数据缓冲区写数据,从而把来不及接收的数据覆盖了。
回复(9) 2003-08-28 15:07 来自版块 - USB驱动开发
表情
usb_anywhere看来你是硬件高手而非软件能手了,其实你完全可以在上位机开两个线程,一个用来接收数据,一个用来处理不就结了,不用想那么多办法了。(2003-08-30 10:52)
soniczlg谢了。 结贴给分。(2003-08-29 17:35)
flytomoon有专门的FIFO的芯片!(2003-08-28 16:27)
soniczlgflytomoon: 假设单片机发送一次数据的时间是1ms,那么发送1000次就需要1000ms。 PC机接收一次数据的时间是2ms,那么需要2000ms才能接收完毕。那么在2000ms时,PC机接收到全部数据了,还是只接收到500次数据? 还是麻烦说...(2003-08-28 15:51)
flytomoon是这样啊。前面价格FIFO可以减慢从单片机送给D12的数据的速度,让你的PC可以尽可能的不丢数。(2003-08-28 15:47)
soniczlgflytomoon : 我传的是一些数字而已,然后根据数字大小画一些线。 (2003-08-28 15:43)
flytomoon别的先不说,用D12作实时传输,你传什么啊,是图像?不行把老兄! :(2003-08-28 15:30)
soniczlgto flytomoon: 谢谢。 请问PC机成功读取USB的一次数据时是否有标志位表示读取成功?现在的做法是在产生中断后发送数据,就可以做到同步。这样做不是很方便。如果有标志位就方便多了。 请问FIFO缓冲具体如何做呢,我还不大明白。 我...(2003-08-28 15:26)
flytomoon当然会丢失了,你可以在D12前加个FIFO缓冲一下啊,不过问题是为什么你的PC机端会读的很慢呢?(2003-08-28 15:13)

返回顶部