USB transfer IN problem on stm32g0bx when length is multiple of 64 bytes
I am using usb hal library.
My problem is when the transfer (IN) is complete if the transfer is a multiple of 64 bytes, I don't get a callback on CDC_TransmitCplt_FS() otherwise I get a callback.
At the end of the transmission, the transfer is correct and is normally done on the host side.
In the function: USBD_CDC_DataIn() in usbd_cdc.c
A test seems to create the problem:
if ((pdev->ep_in[epnum & 0xFU].total_length > 0U) &&
((pdev->ep_in[epnum & 0xFU].total_length % hpcd->IN_ep[epnum & 0xFU].maxpacket) == 0U))
the function does not call the TransmitCplt() callback in this case.
I would like to know if it is normal not to call the TransmitCplt() function if the length of the transfer is a multiple of 64 bytes and how to process 64 bytes multiple length transfer_IN complete callback or another solution to process the end of transmission in all cases.
