usbtest/src/main.c

49 lines
1.0 KiB
C
Raw Normal View History

2021-10-01 18:48:38 +03:00
#include <libopencm3/stm32/rcc.h>
#include <libopencm3/stm32/gpio.h>
#include <libopencm3/usb/usbd.h>
2021-09-30 16:33:59 +03:00
#include <SEGGER_RTT.h>
2021-10-01 16:07:51 +03:00
#include "cdcacm.h"
2021-10-01 18:48:38 +03:00
#include "rndis.h"
2021-09-30 16:33:59 +03:00
2021-10-01 16:07:51 +03:00
int main(void) {
2021-10-01 18:48:38 +03:00
usbd_device *usbd_dev;
2021-09-30 16:33:59 +03:00
SEGGER_RTT_printf(0, "Hello World\n");
2021-10-01 18:48:38 +03:00
rcc_clock_setup_pll(&rcc_hse_configs[RCC_CLOCK_HSE8_72MHZ]);
rcc_periph_clock_enable(RCC_GPIOB);
/* Setup GPIOB Pin 9 to pull up the D+ high, so autodect works
* with the bootloader. The circuit is active high. */
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_2_MHZ,
GPIO_CNF_OUTPUT_OPENDRAIN, GPIO9);
/* Setup GPIOB Pin 1 for the LED */
gpio_set(GPIOB, GPIO1);
gpio_set_mode(GPIOB, GPIO_MODE_OUTPUT_2_MHZ,
GPIO_CNF_OUTPUT_PUSHPULL, GPIO1);
SEGGER_RTT_printf(0, "Starting USB\n");
rcc_periph_clock_enable(RCC_AFIO);
rcc_periph_clock_enable(RCC_OTGFS);
usbd_dev = start_rdnis();
SEGGER_RTT_printf(0, "Main loop\n");
while (1) {
usbd_poll(usbd_dev);
gpio_toggle(GPIOB, GPIO1);
}
2021-10-01 16:07:51 +03:00
return 0;
2021-09-30 16:33:59 +03:00
}