diff --git a/examples/stm32/lisa-m/usb_dfu/usbdfu.c b/examples/stm32/lisa-m/usb_dfu/usbdfu.c
index 4e83ce01..7ffbc745 100644
--- a/examples/stm32/lisa-m/usb_dfu/usbdfu.c
+++ b/examples/stm32/lisa-m/usb_dfu/usbdfu.c
@@ -248,7 +248,6 @@ int main(void)
rcc_clock_setup_in_hsi_out_48mhz();
- rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_AFIOEN);
diff --git a/examples/stm32/lisa-m/usb_hid/usbhid.c b/examples/stm32/lisa-m/usb_hid/usbhid.c
index 241c4816..5314241e 100644
--- a/examples/stm32/lisa-m/usb_hid/usbhid.c
+++ b/examples/stm32/lisa-m/usb_hid/usbhid.c
@@ -241,7 +241,6 @@ int main(void)
rcc_clock_setup_in_hsi_out_48mhz();
- rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPCEN);
diff --git a/examples/stm32/other/usb_cdcacm/cdcacm.c b/examples/stm32/other/usb_cdcacm/cdcacm.c
index cd701b8c..fdc92e24 100644
--- a/examples/stm32/other/usb_cdcacm/cdcacm.c
+++ b/examples/stm32/other/usb_cdcacm/cdcacm.c
@@ -226,7 +226,6 @@ int main(void)
{
rcc_clock_setup_in_hsi_out_48mhz();
- rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_AFIOEN);
diff --git a/examples/stm32/other/usb_dfu/usbdfu.c b/examples/stm32/other/usb_dfu/usbdfu.c
index 4e83ce01..7ffbc745 100644
--- a/examples/stm32/other/usb_dfu/usbdfu.c
+++ b/examples/stm32/other/usb_dfu/usbdfu.c
@@ -248,7 +248,6 @@ int main(void)
rcc_clock_setup_in_hsi_out_48mhz();
- rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_AFIOEN);
diff --git a/examples/stm32/other/usb_hid/usbhid.c b/examples/stm32/other/usb_hid/usbhid.c
index 459ccbea..8f08aac9 100644
--- a/examples/stm32/other/usb_hid/usbhid.c
+++ b/examples/stm32/other/usb_hid/usbhid.c
@@ -240,7 +240,6 @@ int main(void)
{
rcc_clock_setup_in_hsi_out_48mhz();
- rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_AFIOEN);
diff --git a/examples/stm32/stm32-h103/usb_cdcacm/cdcacm.c b/examples/stm32/stm32-h103/usb_cdcacm/cdcacm.c
index fe1f5429..4b906408 100644
--- a/examples/stm32/stm32-h103/usb_cdcacm/cdcacm.c
+++ b/examples/stm32/stm32-h103/usb_cdcacm/cdcacm.c
@@ -228,7 +228,6 @@ int main(void)
rcc_clock_setup_in_hsi_out_48mhz();
- rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPCEN);
gpio_set(GPIOC, GPIO11);
diff --git a/examples/stm32/stm32-h103/usb_dfu/usbdfu.c b/examples/stm32/stm32-h103/usb_dfu/usbdfu.c
index 4e83ce01..7ffbc745 100644
--- a/examples/stm32/stm32-h103/usb_dfu/usbdfu.c
+++ b/examples/stm32/stm32-h103/usb_dfu/usbdfu.c
@@ -248,7 +248,6 @@ int main(void)
rcc_clock_setup_in_hsi_out_48mhz();
- rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_AFIOEN);
diff --git a/examples/stm32/stm32-h103/usb_hid/usbhid.c b/examples/stm32/stm32-h103/usb_hid/usbhid.c
index 09c49e9e..a21fce60 100644
--- a/examples/stm32/stm32-h103/usb_hid/usbhid.c
+++ b/examples/stm32/stm32-h103/usb_hid/usbhid.c
@@ -241,7 +241,6 @@ int main(void)
rcc_clock_setup_in_hsi_out_48mhz();
- rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPCEN);
gpio_set(GPIOC, GPIO11);
diff --git a/examples/stm32/stm32-h103/usb_iap/usbiap.c b/examples/stm32/stm32-h103/usb_iap/usbiap.c
index 4e83ce01..7ffbc745 100644
--- a/examples/stm32/stm32-h103/usb_iap/usbiap.c
+++ b/examples/stm32/stm32-h103/usb_iap/usbiap.c
@@ -248,7 +248,6 @@ int main(void)
rcc_clock_setup_in_hsi_out_48mhz();
- rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_AFIOEN);
diff --git a/examples/stm32/stm32-h107/usb_simple/usb_simple.c b/examples/stm32/stm32-h107/usb_simple/usb_simple.c
index 517f37e6..85f67df7 100644
--- a/examples/stm32/stm32-h107/usb_simple/usb_simple.c
+++ b/examples/stm32/stm32-h107/usb_simple/usb_simple.c
@@ -98,7 +98,6 @@ int main(void)
{
rcc_clock_setup_in_hse_8mhz_out_72mhz();
- rcc_peripheral_enable_clock(&RCC_AHBENR, RCC_AHBENR_OTGFSEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPAEN);
rcc_peripheral_enable_clock(&RCC_APB2ENR, RCC_APB2ENR_IOPCEN);
diff --git a/lib/usb/usb_f103.c b/lib/usb/usb_f103.c
index 19f645d1..594d3c6b 100644
--- a/lib/usb/usb_f103.c
+++ b/lib/usb/usb_f103.c
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+#include
#include
#include
#include
@@ -53,6 +54,7 @@ const struct _usbd_driver stm32f103_usb_driver = {
/** Initialize the USB device controller hardware of the STM32. */
static void stm32f103_usbd_init(void)
{
+ rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USBEN);
SET_REG(USB_CNTR_REG, 0);
SET_REG(USB_BTABLE_REG, 0);
SET_REG(USB_ISTR_REG, 0);
diff --git a/lib/usb/usb_f107.c b/lib/usb/usb_f107.c
index ee83b652..134b728b 100644
--- a/lib/usb/usb_f107.c
+++ b/lib/usb/usb_f107.c
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+#include
#include
#include
#include
@@ -63,6 +64,7 @@ const struct _usbd_driver stm32f107_usb_driver = {
/** Initialize the USB device controller hardware of the STM32. */
static void stm32f107_usbd_init(void)
{
+ rcc_peripheral_enable_clock(&RCC_AHBENR, RCC_AHBENR_OTGFSEN);
OTG_FS_GINTSTS = OTG_FS_GINTSTS_MMIS;
/* WARNING: Undocumented! Select internal PHY */