hpm5100_uart_printf.ino

HPMicro HPM5100 : Microcontrôleur RISC-V 400 MHz pour la commande moteur et l'acquisition analogique · Fichier : hpm5100_uart_printf.ino · Langage : C · Usage : Rediriger les sorties de débogage vers l'UART pour l'affichage console.

Configuration de l'UART0 pour l'affichage printf sur PC.

Configure l'UART0 à 115200 bauds. Implémente la fonction _write pour rediriger stdout. Utilisez un convertisseur USB-UART connecté aux broches TX/RX de l'UART0. Assurez-vous que le groupe horloge uart0 est activé.

hpm5100_uart_printf.ino

#include "board.h"
#include "hpm_uart_drv.h"
#include <stdio.h>

#define UART_INSTANCE HPM_UART0
#define UART_BAUDRATE 115200

void uart_init(void) {
    clock_add_to_group(clock_uart0, 0);
    uart_config_t config;
    uart_default_config(&config);
    config.baudrate = UART_BAUDRATE;
    config.parity = uart_parity_none;
    config.stop_bits = uart_stop_bits_1;
    config.data_bits = uart_data_bits_8;
    uart_init(UART_INSTANCE, &config);
    uart_enable_rx_dma(UART_INSTANCE, false);
    uart_enable_tx_dma(UART_INSTANCE, false);
}

int _write(int file, char *ptr, int len) {
    for (int i = 0; i < len; i++) {
        while (!uart_is_tx_ready(UART_INSTANCE));
        uart_write_char(UART_INSTANCE, ptr[i]);
    }
    return len;
}

int main(void) {
    board_init();
    uart_init();
    while (1) {
        printf("HPM5100 Uptime: %lu ms\n", mchtmr_get_count(HPM_MCHTMR) / (clock_get_frequency(clock_cpu0)/1000));
        delay_ms(1000);
    }
}

← Retour à la fiche