c++与usb通讯
c++与usb通信usb设备一直在往上发送数据,如果上位机没有及时对数据进行读取,数据会不会被丢掉?还是缓存在
c++与usb通信
usb设备一直在往上发送数据,如果上位机没有及时对数据进行读取,数据会不会被丢掉?还是缓存在那边
[解决办法]
这要看硬件实现,一般的如果缓冲满了,硬件会停止发送数据,直到有可用缓冲区。
[解决办法]
数据还在设备缓冲(USB缓冲中)中,没有发到上位机。
如果缓冲的数据过多呢,一直消耗内存?
USB 缓冲是一种硬件缓冲,是固定用途的,不可挪作他用(有的芯片是可配置的,一旦配置完成,也变成固定缓冲了)。
其他数据缓冲,是设备固件的程序设置的,这种情况下,在硬件缓冲没有满的时候,可以把数据写入硬件缓冲,满了以后,通过执行一个指令或者自动执行传输---
等待 host 读取,而且是host 发起读事务以后,才会执行的。
设备端,把数据写入硬件缓冲,即写入某一个USB端点---EndPoint的缓冲,期待host 读取,就是读数据的时候,设备端可以对USB 做的所有操作了。
你的数据存储的内存,是可以自由使用的,而硬件缓冲是专用的,不可供其他用途使用。
具体你的固件程序,如何把数据发送上去,看你使用的是哪一种芯片,你的固件代码是如何编写的。