请教usb的控制传输中状态过程是如何实现的?
大家好,我在void UsbEp0Out(void)这个函数的
case DEVICE_DESCRIPTOR: //设备描述符中发现了
if(SendLength%DeviceDescriptor==0)//并且刚好是整数个数据包时
{
NeedZeroPacket=1; //需要返回0长度的数据包
}
请问为什么需要这样做,发送一个0长度的数据包 哈哈,看程序不仔细 在usbcore.c文件的开头部分
//是否需要发送0数据包的标志。在USB控制传输的数据过程中,
//当返回的数据包字节数少于最大包长时,会认为数据过程结束。
//当请求的字节数比实际需要返回的字节数长,而实际返回的字节
//数又刚好是端点0大小的整数倍时,就需要返回一个0长度的数据包
//来结束数据过程。因此这里增加一个标志,供程序决定是否需要返回
//一个0长度的数据包。
页:
[1]