{
usbd_device *usbd_dev;
+ // Turn off clock to all peripherals and reset them
+ RCC_AHBENR = 0x00000014;
+ RCC_APB1ENR = 0;
+ RCC_APB2ENR = 0;
+ RCC_APB1RSTR = 0x22fec9ff;
+ RCC_APB2RSTR = 0x0038fffd;
+ RCC_APB1RSTR = 0;
+ RCC_APB2RSTR = 0;
+
// Flash programming requires running on the internal oscillator
my_rcc_clock_setup_in_hsi_out_48mhz();
rcc_periph_clock_enable(RCC_GPIOC);
rcc_periph_clock_enable(RCC_USB);
- rcc_periph_reset_pulse(RST_GPIOA);
- rcc_periph_reset_pulse(RST_GPIOC);
- rcc_periph_reset_pulse(RST_USB);
-
#ifdef DEBUG_USART
// Currently, only USART1 is supported
rcc_periph_clock_enable(RCC_USART1);