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: USBDevice/USBHAL_STM32F4.cpp
- Revision:
- 31:5bf05f9b3c7b
- Parent:
- 25:7c72828865f3
- Child:
- 33:f85ada5a4cef
--- a/USBDevice/USBHAL_STM32F4.cpp Wed Aug 20 13:15:20 2014 +0100 +++ b/USBDevice/USBHAL_STM32F4.cpp Thu Aug 21 15:00:37 2014 +0100 @@ -16,7 +16,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#if defined(TARGET_STM32F4XX) +#if defined(TARGET_STM32F4) #include "USBHAL.h" #include "USBRegs_STM32.h" @@ -48,6 +48,13 @@ // Enable power and clocking RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; +#if defined(TARGET_STM32F407VG) + pin_function(PA_8, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_OTG_FS)); + pin_function(PA_9, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLDOWN, GPIO_AF10_OTG_FS)); + pin_function(PA_10, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF10_OTG_FS)); + pin_function(PA_11, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_OTG_FS)); + pin_function(PA_12, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_OTG_FS)); +#else pin_function(PA_8, STM_PIN_DATA(2, 10)); pin_function(PA_9, STM_PIN_DATA(0, 0)); pin_function(PA_10, STM_PIN_DATA(2, 10)); @@ -61,6 +68,7 @@ // Set VBUS pin to open drain pin_mode(PA_9, OpenDrain); +#endif RCC->AHB2ENR |= RCC_AHB2ENR_OTGFSEN;