diff --git a/flight/PiOS/STM32F4xx/pios_usbhook.c b/flight/PiOS/STM32F4xx/pios_usbhook.c index 622a5eb4d..5cc42e0b5 100644 --- a/flight/PiOS/STM32F4xx/pios_usbhook.c +++ b/flight/PiOS/STM32F4xx/pios_usbhook.c @@ -86,6 +86,13 @@ void PIOS_USBHOOK_Activate(void) &user_callbacks); } +void PIOS_USBHOOK_Deactivate(void) +{ + DCD_DevDisconnect(&pios_usb_otg_core_handle); + USBD_DeInit(&pios_usb_otg_core_handle); + USB_OTG_StopDevice(&pios_usb_otg_core_handle); +} + void OTG_FS_IRQHandler(void) { if(!USBD_OTG_ISR_Handler(&pios_usb_otg_core_handle)) { diff --git a/flight/PiOS/inc/pios_usbhook.h b/flight/PiOS/inc/pios_usbhook.h index 39999919c..d6ca8648f 100644 --- a/flight/PiOS/inc/pios_usbhook.h +++ b/flight/PiOS/inc/pios_usbhook.h @@ -72,6 +72,7 @@ extern void PIOS_USBHOOK_CtrlRx(uint8_t *buf, uint16_t len); extern void PIOS_USBHOOK_EndpointTx(uint8_t epnum, const uint8_t *buf, uint16_t len); extern void PIOS_USBHOOK_EndpointRx(uint8_t epnum, uint8_t *buf, uint16_t len); extern void PIOS_USBHOOK_Activate(void); +extern void PIOS_USBHOOK_Deactivate(void); #endif /* PIOS_USBHOOK_H */