Fix receiving of short packet data (ep out)
This commit is contained in:
		@@ -576,6 +576,12 @@ static void handle_rxflvl_ints(USB_OTG_OUTEndpointTypeDef * out_ep) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // Increment pointer to xfer data
 | 
					        // Increment pointer to xfer data
 | 
				
			||||||
        xfer->buffer += bcnt;
 | 
					        xfer->buffer += bcnt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Truncate transfer length in case of short packet
 | 
				
			||||||
 | 
					        if(bcnt < xfer->max_size){
 | 
				
			||||||
 | 
					          xfer->total_len -= (out_ep[epnum].DOEPTSIZ & USB_OTG_DOEPTSIZ_XFRSIZ_Msk) >> USB_OTG_DOEPTSIZ_XFRSIZ_Pos;
 | 
				
			||||||
 | 
					          if(epnum == 0) xfer->total_len -= ep0_pending[TUSB_DIR_OUT];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case 0x03: // Out packet done (Interrupt)
 | 
					    case 0x03: // Out packet done (Interrupt)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user