diff --git a/examples/stm32/f4/stm32f4-discovery/usb_midi/usbmidi.c b/examples/stm32/f4/stm32f4-discovery/usb_midi/usbmidi.c index f465976..b57f999 100644 --- a/examples/stm32/f4/stm32f4-discovery/usb_midi/usbmidi.c +++ b/examples/stm32/f4/stm32f4-discovery/usb_midi/usbmidi.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -46,7 +47,7 @@ static const struct usb_device_descriptor dev = { .bcdDevice = 0x0100, .iManufacturer = 1, /* index to string desc */ .iProduct = 2, /* index to string desc */ - .iSerialNumber = 0, + .iSerialNumber = 3, /* index to string desc */ .bNumConfigurations = 1, }; @@ -267,9 +268,12 @@ static const struct usb_config_descriptor config = { .interface = ifaces, }; +static char usb_serial_number[25]; /* 12 bytes of desig and a \0 */ + static const char * usb_strings[] = { "libopencm3.org", "MIDI demo", + usb_serial_number }; /* Buffer to be used for control requests. */ @@ -371,11 +375,13 @@ int main(void) GPIO9 | GPIO11 | GPIO12); gpio_set_af(GPIOA, GPIO_AF10, GPIO9 | GPIO11 | GPIO12); + desig_get_unique_id_as_string(usb_serial_number, sizeof(usb_serial_number)); + /* Button pin */ gpio_mode_setup(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO0); usbd_dev = usbd_init(&otgfs_usb_driver, &dev, &config, - usb_strings, 2, + usb_strings, 3, usbd_control_buffer, sizeof(usbd_control_buffer)); usbd_register_set_config_callback(usbd_dev, usbmidi_set_config); diff --git a/examples/stm32/f4/stm32f429i-discovery/usb_midi/usbmidi.c b/examples/stm32/f4/stm32f429i-discovery/usb_midi/usbmidi.c index aa9cf82..64251b0 100644 --- a/examples/stm32/f4/stm32f429i-discovery/usb_midi/usbmidi.c +++ b/examples/stm32/f4/stm32f429i-discovery/usb_midi/usbmidi.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -47,7 +48,7 @@ static const struct usb_device_descriptor dev = { .bcdDevice = 0x0100, .iManufacturer = 1, /* index to string desc */ .iProduct = 2, /* index to string desc */ - .iSerialNumber = 0, + .iSerialNumber = 3, /* index to string desc */ .bNumConfigurations = 1, }; @@ -268,9 +269,12 @@ static const struct usb_config_descriptor config = { .interface = ifaces, }; +static char usb_serial_number[25]; /* 12 bytes of desig and a \0 */ + static const char *usb_strings[] = { "libopencm3.org", "MIDI demo", + usb_serial_number }; /* Buffer to be used for control requests. */ @@ -373,11 +377,13 @@ int main(void) GPIO13 | GPIO14 | GPIO15); gpio_set_af(GPIOB, GPIO_AF12, GPIO13 | GPIO14 | GPIO15); + desig_get_unique_id_as_string(usb_serial_number, sizeof(usb_serial_number)); + /* Button pin */ gpio_mode_setup(GPIOA, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO0); usbd_dev = usbd_init(&otghs_usb_driver, &dev, &config, - usb_strings, 2, + usb_strings, 3, usbd_control_buffer, sizeof(usbd_control_buffer)); usbd_register_set_config_callback(usbd_dev, usbmidi_set_config);