uint8_t USBDeviceClass::armRecv(uint32_t ep) { uint16_t count = usbd.epBank0ByteCount(ep); if (count >= 64) { usbd.epBank0SetByteCount(ep, count - 64); } else { usbd.epBank0SetByteCount(ep, 0); } return usbd.epBank0ByteCount(ep); }
uint8_t USBDeviceClass::armRecvCtrlOUT(uint32_t ep) { // Get endpoint configuration from setting register usbd.epBank0SetAddress(ep, &udd_ep_out_cache_buffer[ep]); usbd.epBank0SetMultiPacketSize(ep, 8); usbd.epBank0SetByteCount(ep, 0); usbd.epBank0ResetReady(ep); // Wait OUT while (!usbd.epBank0IsReady(ep)) {} while (!usbd.epBank0IsTransferComplete(ep)) {} return usbd.epBank0ByteCount(ep); }
// Number of bytes, assumes a rx endpoint uint32_t USBDeviceClass::available(uint32_t ep) { return usbd.epBank0ByteCount(ep); }