console_uart.c

nRF52833-DK (id boards.json : nrf52833-dk) · Fichier : console_uart.c · Langage : C · Usage : Tracer des mesures sur la console série

La console série est le premier outil de vie d’un firmware nRF : ce sketch imprime compteur, uptime et valeur de capteur à 1 Hz sur l’UART console. Sur le DK, c’est l’USB « USB UART » ; sur le MDK, le CDC de l’USB natif.

Matériel requis

Une carte nRF52833-DK (Nordic, SoC nRF52833 Cortex-M4F, BLE 5) alimentée par USB : 4 LEDs sur P0.13-P0.16 (actives au niveau bas) et 4 boutons sur P0.11, P0.12, P0.24, P0.25 (actifs bas, pull-up interne à activer). La carte et un câble micro-USB/USB-C ; un terminal série (minicom, PuTTY, west uart_console) à 115200 bauds.

Câblage

Aucun câblage : la console passe par l’USB de programmation. Les broches UART du connecteur restent libres pour un second port.

Fonctionnement

printk est routé vers le périphérique choisi par zephyr,console dans le devicetree ; k_uptime_get donne le temps en millisecondes depuis le démarrage, pratique pour dater les événements.

Exécution

Projet Zephyr : west build -b nrf52833dk/nrf52833 puis west flash (J-Link embarqué) ; console série 115200 sur le connecteur USB UART.

Variantes

Basculer sur le logging subsystem (LOG_INF) pour des niveaux filtrables, créer un second UART via overlay pour un module externe, ou formater en CSV pour journalisation.

console_uart.c

/* Console série Zephyr : trame périodique sur l'UART console.
 * DK : l'USB « USB UART » du connecteur micro-B (115200 8N1).
 * MDK : l'USB natif du nRF52840 (CDC) selon le BSP. */
#include <zephyr/kernel.h>

int main(void)
{
	int n = 0;

	printk("Console prête — mesure 1 Hz\n");
	while (1) {
		/* Exemple de trame : compteur + uptime + une fausse
		   valeur capteur dérivée du compteur. */
		int valeur = 100 + (n % 25);
		printk("[%05d] uptime=%lld ms valeur=%d\n",
		       n, k_uptime_get(), valeur);
		n++;
		k_msleep(1000);
	}
	return 0;
}

← Retour à la fiche