阅读:1033回复:0
从Cypress 68013usb Endpoint1端口读几个字节数据?
我采用ds写了一个简单的从Cypress 68013usb Endpoint1端口读几个字节数据的驱动,采用的是bulk方式,用alternate setting 1初始化了接口后
m_Interface.Initialize( m_Lower, //KUsbLowerDevice 0, //InterfaceNumber 1, //ConfigurationValue 1 //Initial Interface Alternate Setting ); 再用第一个端点的管道来读数据 // Initialize Pipe1 m_Endpoint1IN.Initialize(m_Lower, 0x81, 64); 然后再创建一个URB包,并将他提交给了USB总线驱动, // Initialize each Pipe1 object m_Endpoint1IN.Initialize(m_Lower, 0x81, 64); NTSTATUS status = STATUS_SUCCESS; KMemory Mem(I.Mdl()); ULONG dwTotalSize = I.ReadSize(CURRENT); ULONG dwMaxSize = m_Endpoint1IN.MaximumTransferSize(); if ( dwTotalSize > dwMaxSize ) { ASSERT(dwMaxSize); dwTotalSize = dwMaxSize; } ULONG dwBytesRead = 0; // Create an URB to do actual Bulk read from Pipe0 PURB pUrb = m_Endpoint1IN.BuildBulkTransfer( Mem, // Where is data coming from? dwTotalSize, // How much data to read? TRUE, // direction (TRUE = IN) NULL // Link to next URB ); if ( pUrb != NULL) { // Submit the URB to our USB device pUrb->UrbBulkOrInterruptTransfer.TransferFlags = (USBD_TRANSFER_DIRECTION_IN | USBD_SHORT_TRANSFER_OK); status = m_Endpoint1IN.SubmitUrb(pUrb, NULL, NULL); t << "SubmitUrb" << EOL << EOL; delete pUrb; } 可是驱动程序,提交了URB包后就不在继续往下执行了,好象在等待 68013返回数据,请问大虾们要从68013的1好端口读数据是不是这样的阿?能够指点一下么?要怎么做才能够从端口读到数据?小弟感激不敬!!!!谢谢! |
|