usb-cdc-serial-console-9.ino

HPMicro HPM5100 : Microcontrôleur RISC-V 400 MHz avec analogique intégré · Fichier : usb-cdc-serial-console-9.ino · Langage : C · Usage : Configurer l'interface USB OTG en mode CDC (Virtual COM Port) pour le débogage série sans pin UART.

Initialise le contrôleur USB OTG intégré en mode device CDC pour exposer un port série virtuel sur le PC.

Matériel : Connectez le port USB Type-C au PC. Le SDK HPMicro utilise TinyUSB. Incluez les sources TinyUSB et la configuration usb_config.h spécifique au HPM5100. Compilez avec le script de build HPM SDK en activant l'option 'usb_device_cdc_acm'. Téléversez via SWD ou OpenOCD. Ouvrez le moniteur série sur le port COM détecté pour voir les logs si ajouté.

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();
    }
}

← Retour à la fiche