From 4afb5984532236b4003780c67e32df27e2f12a83 Mon Sep 17 00:00:00 2001 From: Valentin Ochs Date: Fri, 16 Jul 2021 21:22:13 +0200 Subject: [PATCH] Allow reinitializing USB --- usb.c | 10 +++++++--- usb.h | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/usb.c b/usb.c index 633fa5d..41b2db5 100644 --- a/usb.c +++ b/usb.c @@ -314,15 +314,19 @@ void usb_setup() { } /* Initialize the device... */ + usb_reinit(); + + /* And use interrupts instead of polling. */ + // nvic_enable_irq(NVIC_OTG_FS_IRQ); +} + +void usb_reinit() { g_usbd_dev = usbd_init(&otgfs_usb_driver, &dev, &config, (char const * const *)usb_strings, (sizeof usb_strings) / sizeof(usb_strings[0]), usbd_control_buffer, sizeof(usbd_control_buffer)); usbd_register_set_config_callback(g_usbd_dev, cdcacm_set_config); - - /* And use interrupts instead of polling. */ - // nvic_enable_irq(NVIC_OTG_FS_IRQ); } //void __attribute__((weak)) otg_fs_isr() { } diff --git a/usb.h b/usb.h index f9437dc..aa3ae49 100644 --- a/usb.h +++ b/usb.h @@ -6,6 +6,7 @@ extern usbd_device *g_usbd_dev; void usb_setup(void); +void usb_reinit(void); int usb_write_cdcacm(uint8_t acm, void *data, size_t len, int tries); #define ACM_NFC 1