Hello,
I am using the LPC55S28 microcontroller and adapting code from the hid generic example into my project. I implemented a type of flow control by returning kStatus_USB_Busy in kUSB_DeviceHidEventSetReport when I want the host to wait and not send more messages.
for (; devState < ((uint32_t)USB_DEVICE_IP3511_ENDPOINTS_NUM * 2U); ++devState) {
/* Check the endpoint interrupt */
if (0U != (interruptStatus & (0x01UL << devState))) { USB_DeviceLpc3511IpInterruptToken(lpc3511IpState, (uint8_t)devState, 0U, usbErrorCode);
} }
This behavior is triggered immediately because interruptStatus and devState are updated to 2 and 1, respectively.
How can I prevent this event from being re-triggered, given that the buffer does not contain any new data? Currently, this results in duplicate messages being processed every time I return the kStatus_USB_Busy status.
I would appreciate your help!