usb-cdc-serial-console-9.ino
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();
}
}