int main(void) { rcc_clock_setup_in_hse_8mhz_out_72mhz(); /* LED to indicate boot process */ rcc_periph_clock_enable(RCC_GPIOC); gpio_set_mode(GPIOC, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO13); gpio_set(GPIOC, GPIO13); rcc_periph_clock_enable(RCC_GPIOA); /* * Vile hack to reenumerate, physically _drag_ d+ low. * do NOT do this if you're board has proper usb pull up control! * (need at least 2.5us to trigger usb disconnect) */ gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, GPIO12); gpio_clear(GPIOA, GPIO11); for (unsigned int i = 0; i < 800000; i++) __asm__("nop"); rcc_periph_clock_enable(RCC_OTGFS); usbd_device *usbd_dev = gadget0_init(&st_usbfs_v1_usb_driver, "stm32f103-generic"); ER_DPRINTF("bootup complete\n"); gpio_clear(GPIOC, GPIO13); while (1) { usbd_poll(usbd_dev); } }
int main(void) { rcc_clock_setup_pll(&this_clock_config); /* LED on custom board for boot progress */ rcc_periph_clock_enable(RCC_GPIOB); gpio_mode_setup(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO1); gpio_set(GPIOB, GPIO1); usbd_device *usbd_dev = gadget0_init(&st_usbfs_v1_usb_driver, "stm32l1-generic"); ER_DPRINTF("bootup complete\n"); gpio_clear(GPIOB, GPIO1); while (1) { usbd_poll(usbd_dev); } }
int main(void) { rcc_clock_setup_in_hsi48_out_48mhz(); crs_autotrim_usb_enable(); rcc_set_usbclk_source(HSI48); /* LED on for boot progress */ rcc_periph_clock_enable(RCC_GPIOC); gpio_mode_setup(GPIOC, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO7); gpio_set(GPIOC, GPIO7); usbd_device *usbd_dev = gadget0_init(&st_usbfs_v2_usb_driver, "stm32f072disco"); ER_DPRINTF("bootup complete\n"); gpio_clear(GPIOC, GPIO7); while (1) { usbd_poll(usbd_dev); } }
int main(void) { rcc_clock_setup_hse_3v3(&rcc_hse_8mhz_3v3[RCC_CLOCK_3V3_168MHZ]); rcc_periph_clock_enable(RCC_GPIOA); rcc_periph_clock_enable(RCC_OTGFS); gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO9 | GPIO11 | GPIO12); gpio_set_af(GPIOA, GPIO_AF10, GPIO9 | GPIO11 | GPIO12); /* LEDS on discovery board */ rcc_periph_clock_enable(RCC_GPIOD); gpio_mode_setup(GPIOD, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO12 | GPIO13 | GPIO14 | GPIO15); usbd_device *usbd_dev = gadget0_init(&otgfs_usb_driver, "stm32f4disco"); ER_DPRINTF("bootup complete\n"); while (1) { gadget0_run(usbd_dev); } }
int main(void) { rcc_periph_clock_enable(RCC_GPIOB); gpio_mode_setup(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO8|GPIO9); gpio_set(GPIOB, GPIO8); rcc_clock_setup_pll(&this_clock_config); /* Enable built in USB pullup on L1 */ rcc_periph_clock_enable(RCC_SYSCFG); SYSCFG_PMC |= SYSCFG_PMC_USB_PU; usbd_device *usbd_dev = gadget0_init(&st_usbfs_v1_usb_driver, "stm32l1-generic"); ER_DPRINTF("bootup complete\n"); gpio_clear(GPIOB, GPIO8); while (1) { gpio_set(GPIOB, GPIO9); gadget0_run(usbd_dev); gpio_clear(GPIOB, GPIO9); } }