aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c68
-rw-r--r--testhal/STM32F4xx/USB_CDC/main.c2
2 files changed, 31 insertions, 39 deletions
diff --git a/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c b/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c
index 0b1651e2a..0c6079516 100644
--- a/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c
+++ b/demos/ARMCM4-STM32F407-LWIP-FATFS-USB/main.c
@@ -353,17 +353,22 @@ static const USBDescriptor *get_descriptor(USBDriver *usbp,
static USBInEndpointState ep1instate;
/**
- * @brief EP1 initialization structure (IN only).
+ * @brief OUT EP1 state.
+ */
+static USBOutEndpointState ep1outstate;
+
+/**
+ * @brief EP1 initialization structure (both IN and OUT).
*/
static const USBEndpointConfig ep1config = {
USB_EP_MODE_TYPE_BULK,
NULL,
sduDataTransmitted,
- NULL,
+ sduDataReceived,
+ 0x0040,
0x0040,
- 0x0000,
&ep1instate,
- NULL,
+ &ep1outstate,
2,
NULL
};
@@ -371,7 +376,7 @@ static const USBEndpointConfig ep1config = {
/**
* @brief IN EP2 state.
*/
-USBInEndpointState ep2instate;
+static USBInEndpointState ep2instate;
/**
* @brief EP2 initialization structure (IN only).
@@ -389,27 +394,6 @@ static const USBEndpointConfig ep2config = {
NULL
};
-/**
- * @brief OUT EP2 state.
- */
-USBOutEndpointState ep3outstate;
-
-/**
- * @brief EP3 initialization structure (OUT only).
- */
-static const USBEndpointConfig ep3config = {
- USB_EP_MODE_TYPE_BULK,
- NULL,
- NULL,
- sduDataReceived,
- 0x0000,
- 0x0040,
- NULL,
- &ep3outstate,
- 0,
- NULL
-};
-
/*
* Handles the USB driver global events.
*/
@@ -428,7 +412,6 @@ static void usb_event(USBDriver *usbp, usbevent_t event) {
must be used.*/
usbInitEndpointI(usbp, USB_CDC_DATA_REQUEST_EP, &ep1config);
usbInitEndpointI(usbp, USB_CDC_INTERRUPT_REQUEST_EP, &ep2config);
- usbInitEndpointI(usbp, USB_CDC_DATA_AVAILABLE_EP, &ep3config);
/* Resetting the state of the CDC subsystem.*/
sduConfigureHookI(usbp);
@@ -446,16 +429,20 @@ static void usb_event(USBDriver *usbp, usbevent_t event) {
}
/*
+ * USB driver configuration.
+ */
+static const USBConfig usbcfg = {
+ usb_event,
+ get_descriptor,
+ sduRequestsHook,
+ NULL
+};
+
+/*
* Serial over USB driver configuration.
*/
static const SerialUSBConfig serusbcfg = {
- &USBD1,
- {
- usb_event,
- get_descriptor,
- sduRequestsHook,
- NULL
- }
+ &USBD1
};
/*===========================================================================*/
@@ -627,12 +614,19 @@ int main(void) {
chSysInit();
/*
- * Activates the shell on the USB-CDC.
+ * Initializes a serial-over-USB CDC driver.
*/
- usbDisconnectBus(serusbcfg.usbp);
- chThdSleepMilliseconds(1000);
sduObjectInit(&SDU1);
sduStart(&SDU1, &serusbcfg);
+
+ /*
+ * Activates the USB driver and then the USB bus pull-up on D+.
+ * Note, a delay is inserted in order to not have to disconnect the cable
+ * after a reset.
+ */
+ usbDisconnectBus(serusbcfg.usbp);
+ chThdSleepMilliseconds(1000);
+ usbStart(serusbcfg.usbp, &usbcfg);
usbConnectBus(serusbcfg.usbp);
/*
diff --git a/testhal/STM32F4xx/USB_CDC/main.c b/testhal/STM32F4xx/USB_CDC/main.c
index f2f00ebce..49a31a674 100644
--- a/testhal/STM32F4xx/USB_CDC/main.c
+++ b/testhal/STM32F4xx/USB_CDC/main.c
@@ -408,9 +408,7 @@ static void cmd_write(BaseSequentialStream *chp, int argc, char *argv[]) {
while (chnGetTimeout((BaseChannel *)chp, TIME_IMMEDIATE) == Q_TIMEOUT) {
chSequentialStreamWrite(&SDU1, buf, sizeof buf - 1);
-// palTogglePad(GPIOD, GPIOD_LED4);
}
-// palClearPad(GPIOD, GPIOD_LED4);
chprintf(chp, "\r\n\nstopped\r\n");
}