usb-cdc-serial-console-9.ino

HPMicro HPM5100: 400 MHz RISC-V MCU with Integrated Analog Peripherals · File : usb-cdc-serial-console-9.ino · Language : C · Use case : Configurer l'interface USB OTG en mode CDC (Virtual COM Port) pour le débogage série sans pin UART.

Initializes the integrated USB OTG controller in CDC device mode to expose a virtual serial port to the PC.

Hardware: Connect USB Type-C to PC. HPMicro SDK uses TinyUSB. Include TinyUSB sources and HPM5100 specific usb_config.h. Compile with HPM SDK build script enabling 'usb_device_cdc_acm'. Flash via SWD or OpenOCD. Open serial monitor on detected COM port for logs if added.

usb-cdc-serial-console-9.ino

#include "board.h"
#include "usb_config.h"
#include "usbd_core.h"
#include "usbd_cdc_acm.h"

#define LED_GPIO_CTRL HPM_GPIO0
#define LED_PIN 1

void led_init(void) {
    gpio_init(LED_GPIO_CTRL);
    gpio_set_pin_output_with_initial(LED_GPIO_CTRL, LED_PIN, 1);
}

void sys_tick_handler(void) {
    static uint32_t count = 0;
    if (++count >= 100) { // Toggle every ~100ms
        gpio_toggle_pin_output(LED_GPIO_CTRL, LED_PIN);
        count = 0;
    }
}

int main(void) {
    board_init();
    clock_set_source_divider(clock_ahb, clk_src_osc24m, 1);
    hpm_clock_init();
    led_init();

    // Initialize USB Stack
    hpm_usb_init();
    usbd_core_init();
    usbd_cdc_acm_init(USBBUS_ID_0, NULL, NULL); // No custom callbacks

    // Start USB
    usbd_core_start(USBBUS_ID_0);

    while (1) {
        // Wait for interrupts
        __WFI();
    }
}

← Back to the board