diff options
| -rw-r--r-- | port/ch32/ch58x/usb_ch58x_dc_usbfs.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/port/ch32/ch58x/usb_ch58x_dc_usbfs.c b/port/ch32/ch58x/usb_ch58x_dc_usbfs.c index c7efb84e..e86f4188 100644 --- a/port/ch32/ch58x/usb_ch58x_dc_usbfs.c +++ b/port/ch32/ch58x/usb_ch58x_dc_usbfs.c @@ -543,11 +543,10 @@ void USBD_IRQHandler(uint8_t busid) } break; case UIS_TOKEN_OUT: - EPn_SET_RX_NAK(epid); - if (epid == 0) { /*!< ep0 out */ CH58x_USBFS_DEV->UEP0_CTRL ^= RB_UEP_R_TOG; + EPn_SET_RX_NAK(epid); uint32_t read_count = EPn_GET_RX_LEN(0); memcpy(usb_dc_cfg.ep_out[epid].xfer_buf, usb_dc_cfg.ep_out[epid].ep_ram_addr, read_count); @@ -563,6 +562,7 @@ void USBD_IRQHandler(uint8_t busid) if (epid == 4) { CH58x_USBFS_DEV->UEP4_CTRL ^= RB_UEP_R_TOG; } + EPn_SET_RX_NAK(epid); uint32_t read_count = EPn_GET_RX_LEN(epid); memcpy(usb_dc_cfg.ep_out[epid].xfer_buf, usb_dc_cfg.ep_out[epid].ep_ram_addr, read_count); usb_dc_cfg.ep_out[epid].xfer_buf += read_count; @@ -637,4 +637,4 @@ void USB_IRQHandler(void) { extern void USBD_IRQHandler(uint8_t busid); USBD_IRQHandler(0); -}
\ No newline at end of file +} |
