diff --git a/examples/stm32/f1/lisa-m-1/usb_dfu/usbdfu.c b/examples/stm32/f1/lisa-m-1/usb_dfu/usbdfu.c index f78270c..91503ac 100644 --- a/examples/stm32/f1/lisa-m-1/usb_dfu/usbdfu.c +++ b/examples/stm32/f1/lisa-m-1/usb_dfu/usbdfu.c @@ -229,6 +229,17 @@ static int usbdfu_control_request(usbd_device *usbd_dev, struct usb_setup_data * return 0; } +static void usbdfu_set_config(usbd_device *usbd_dev, uint16_t wValue) +{ + (void)wValue; + + usbd_register_control_callback( + usbd_dev, + USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE, + USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, + usbdfu_control_request); +} + int main(void) { usbd_device *usbd_dev; @@ -258,11 +269,7 @@ int main(void) GPIO_CNF_OUTPUT_PUSHPULL, GPIO2); usbd_dev = usbd_init(&stm32f107_usb_driver, &dev, &config, usb_strings, 4, usbd_control_buffer, sizeof(usbd_control_buffer)); - usbd_register_control_callback( - usbd_dev, - USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE, - USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, - usbdfu_control_request); + usbd_register_set_config_callback(usbd_dev, usbdfu_set_config); gpio_clear(GPIOC, GPIO2); diff --git a/examples/stm32/f1/other/usb_dfu/usbdfu.c b/examples/stm32/f1/other/usb_dfu/usbdfu.c index e589079..d634513 100644 --- a/examples/stm32/f1/other/usb_dfu/usbdfu.c +++ b/examples/stm32/f1/other/usb_dfu/usbdfu.c @@ -229,6 +229,17 @@ static int usbdfu_control_request(usbd_device *usbd_dev, struct usb_setup_data * return 0; } +static void usbdfu_set_config(usbd_device *usbd_dev, uint16_t wValue) +{ + (void)wValue; + + usbd_register_control_callback( + usbd_dev, + USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE, + USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, + usbdfu_control_request); +} + int main(void) { usbd_device *usbd_dev; @@ -259,11 +270,7 @@ int main(void) rcc_periph_clock_enable(RCC_OTGFS); usbd_dev = usbd_init(&stm32f107_usb_driver, &dev, &config, usb_strings, 4, usbd_control_buffer, sizeof(usbd_control_buffer)); - usbd_register_control_callback( - usbd_dev, - USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE, - USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, - usbdfu_control_request); + usbd_register_set_config_callback(usbd_dev, usbdfu_set_config); gpio_set(GPIOA, GPIO15); gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_2_MHZ, diff --git a/examples/stm32/f1/stm32-h103/usb_iap/usbiap.c b/examples/stm32/f1/stm32-h103/usb_iap/usbiap.c index 784ce28..66094a3 100644 --- a/examples/stm32/f1/stm32-h103/usb_iap/usbiap.c +++ b/examples/stm32/f1/stm32-h103/usb_iap/usbiap.c @@ -229,6 +229,18 @@ static int usbdfu_control_request(usbd_device *usbd_dev, struct usb_setup_data * return 0; } +static void usbdfu_set_config(usbd_device *usbd_dev, uint16_t wValue) +{ + (void)wValue; + + usbd_register_control_callback( + usbd_dev, + USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE, + USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, + usbdfu_control_request); +} + + int main(void) { usbd_device *usbd_dev; @@ -257,11 +269,7 @@ int main(void) gpio_set_mode(GPIOA, GPIO_MODE_INPUT, 0, GPIO15); usbd_dev = usbd_init(&stm32f103_usb_driver, &dev, &config, usb_strings, 4, usbd_control_buffer, sizeof(usbd_control_buffer)); - usbd_register_control_callback( - usbd_dev, - USB_REQ_TYPE_CLASS | USB_REQ_TYPE_INTERFACE, - USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, - usbdfu_control_request); + usbd_register_set_config_callback(usbd_dev, usbdfu_set_config); gpio_set(GPIOA, GPIO15); gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_2_MHZ, diff --git a/examples/stm32/f1/stm32-h107/usb_simple/usb_simple.c b/examples/stm32/f1/stm32-h107/usb_simple/usb_simple.c index ce0d66a..97d44cd 100644 --- a/examples/stm32/f1/stm32-h107/usb_simple/usb_simple.c +++ b/examples/stm32/f1/stm32-h107/usb_simple/usb_simple.c @@ -96,6 +96,16 @@ static int simple_control_callback(usbd_device *usbd_dev, struct usb_setup_data return 1; } +static void usb_set_config_cb(usbd_device *usbd_dev, uint16_t wValue) +{ + (void)wValue; + usbd_register_control_callback( + usbd_dev, + USB_REQ_TYPE_VENDOR, + USB_REQ_TYPE_TYPE, + simple_control_callback); +} + int main(void) { usbd_device *usbd_dev; @@ -111,11 +121,7 @@ int main(void) GPIO_CNF_OUTPUT_PUSHPULL, GPIO6); usbd_dev = usbd_init(&stm32f107_usb_driver, &dev, &config, usb_strings, 3, usbd_control_buffer, sizeof(usbd_control_buffer)); - usbd_register_control_callback( - usbd_dev, - USB_REQ_TYPE_VENDOR, - USB_REQ_TYPE_TYPE, - simple_control_callback); + usbd_register_set_config_callback(usbd_dev, usb_set_config_cb); while (1) usbd_poll(usbd_dev);