USB device stack for NUCLEO-F042K6, NUCLEO-L152RE and NUCLEO-F103RB.
Fork of L152RE_USBDevice by
I tried USB device using HAL_PCD.
Nucleo-F042K6 | USB |
---|---|
PA11 (CN3-13) | DM (2 WHITE) |
PA12 (CN3-5) | DP (3 GREEN) |
GND (CN3-4) | GND (5 BLACK) |
VIN (CN4-1) | VBUS(1 RED) |
Examples
Import programF042K6_USBDevice_example
NUCLEO-F042K6 USBDevice example code
Import programL152RE_USBDevice_example
L152RE_USBDevice example code
Import programF042K6_Simple-CMSIS-DAP
cmsis-dap debug adapter
Import programL152RE_Simple-CMSIS-DAP
cmsis-dap debug adapter
Diff: USBMSD/USBMSD.cpp
- Revision:
- 14:d495202c90f4
- Parent:
- 11:eeb3cbbaa996
- Child:
- 18:78bdbce94509
--- a/USBMSD/USBMSD.cpp Tue Sep 10 15:14:55 2013 +0300 +++ b/USBMSD/USBMSD.cpp Thu Sep 12 14:45:27 2013 +0100 @@ -67,8 +67,12 @@ stage = READ_CBW; memset((void *)&cbw, 0, sizeof(CBW)); memset((void *)&csw, 0, sizeof(CSW)); + page = NULL; } +USBMSD::~USBMSD() { + disconnect(); +} // Called in ISR context to process a class specific request @@ -117,6 +121,7 @@ if (BlockCount > 0) { BlockSize = MemorySize / BlockCount; if (BlockSize != 0) { + free(page); page = (uint8_t *)malloc(BlockSize * sizeof(uint8_t)); if (page == NULL) return false; @@ -130,6 +135,12 @@ return true; } +void USBMSD::disconnect() { + //De-allocate MSD page size: + free(page); + page = NULL; + USBDevice::disconnect(); +} void USBMSD::reset() { stage = READ_CBW;