Просмотр исходного кода

Fix possible errors in endpoint 0 datapid

Chen Leeren 2 лет назад
Родитель
Сommit
3d96f64f94
2 измененных файлов с 2 добавлено и 2 удалено
  1. 1 1
      port/ch32/usb_dc_usbfs.c
  2. 1 1
      port/ch32/usb_dc_usbhs.c

+ 1 - 1
port/ch32/usb_dc_usbfs.c

@@ -270,7 +270,7 @@ void USBD_IRQHandler(void)
 
             case USBFS_UIS_TOKEN_IN:
                 if (ep_idx == 0x00) {
-                    if (g_ch32_usbfs_udc.in_ep[ep_idx].xfer_len > g_ch32_usbfs_udc.in_ep[ep_idx].ep_mps) {
+                    if (g_ch32_usbfs_udc.in_ep[ep_idx].xfer_len >= g_ch32_usbfs_udc.in_ep[ep_idx].ep_mps) {
                         g_ch32_usbfs_udc.in_ep[ep_idx].xfer_len -= g_ch32_usbfs_udc.in_ep[ep_idx].ep_mps;
                         g_ch32_usbfs_udc.in_ep[ep_idx].actual_xfer_len += g_ch32_usbfs_udc.in_ep[ep_idx].ep_mps;
                         ep0_tx_data_toggle ^= 1;

+ 1 - 1
port/ch32/usb_dc_usbhs.c

@@ -258,7 +258,7 @@ void USBD_IRQHandler(void)
 
         if (token == PID_IN) {
             if (ep_idx == 0x00) {
-                if (g_ch32_usbhs_udc.in_ep[ep_idx].xfer_len > g_ch32_usbhs_udc.in_ep[ep_idx].ep_mps) {
+                if (g_ch32_usbhs_udc.in_ep[ep_idx].xfer_len >= g_ch32_usbhs_udc.in_ep[ep_idx].ep_mps) {
                     g_ch32_usbhs_udc.in_ep[ep_idx].xfer_len -= g_ch32_usbhs_udc.in_ep[ep_idx].ep_mps;
                     g_ch32_usbhs_udc.in_ep[ep_idx].actual_xfer_len += g_ch32_usbhs_udc.in_ep[ep_idx].ep_mps;
                     ep0_tx_data_toggle ^= 1;