console_uart.c
La consola serie es la primera línea de vida de un firmware nRF: este sketch imprime contador, uptime y un valor de sensor a 1 Hz por la UART console. En el DK es el « USB UART » del conector; en el MDK, el CDC del USB nativo.
Hardware
Una placa nRF52833-DK (Nordic, SoC nRF52833 Cortex-M4F, BLE 5) alimentada por USB: 4 LED en P0.13-P0.16 (activos a nivel bajo) y 4 botones en P0.11, P0.12, P0.24, P0.25 (activos a bajo, pull-up interno a activar). La placa y un cable micro-USB/USB-C; un terminal serie (minicom, PuTTY, west uart_console) a 115200 baudios.
Cableado
Sin cableado: la consola viaja por el USB de programación. Los pines UART del conector quedan libres para un segundo puerto.
Funcionamiento
printk se enruta al dispositivo elegido por zephyr,console en el devicetree; k_uptime_get devuelve milisegundos desde el arranque, útil para fechar eventos.
Ejecución
Proyecto Zephyr: west build -b nrf52833dk/nrf52833 y luego west flash (J-Link embarcado); consola serie 115200 en el conector USB UART.
Variantes
Pasar al subsistema de logging (LOG_INF) para niveles filtrables, crear un segundo UART con overlay para un módulo externo, o formatear en CSV para registro.
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;
}