From 9f8d37d8c8d83684e3cbd8b7484c5c3d83dd3861 Mon Sep 17 00:00:00 2001 From: Karl Palsson Date: Mon, 11 Apr 2016 23:24:23 +0000 Subject: [PATCH] stm32f4: usb midi: use unique serial numbers The unique serial number from the device unique signature block was never used in any examples. Add it to the these two usb midi examples, to have a user for this api available for reference. --- examples/stm32/f4/stm32f4-discovery/usb_midi/usbmidi.c | 10 ++++++++-- .../stm32/f4/stm32f429i-discovery/usb_midi/usbmidi.c | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) 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);