From 739db92ef0791aecce7429d6bbf9b7b24da8f0fd Mon Sep 17 00:00:00 2001 From: FanhuaCloud <1157173310@qq.com> Date: Thu, 3 Jul 2025 14:09:10 +0800 Subject: fix:(port/ch58x/usb_ch58x_dc_usbfs.c) fix out endpoint cannot receive bug --- port/ch32/ch58x/usb_ch58x_dc_usbfs.c | 6 +++--- 1 file 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 +} -- cgit v1.3.1