blinky.c

nRF52833-DK (id de boards.json: nrf52833-dk) · Archivo : blinky.c · Lenguaje : C · Uso : Faire clignoter la LED0 à 2 Hz (hello world Zephyr)

El hello world de Zephyr adaptado a placas nRF: el LED de usuario (alias devicetree led0, P0.13 en el DK) parpadea a 2 Hz. El código nunca nombra un pin crudo: el BSP de la placa hace el enlace, y así es portable.

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). Solo la placa, alimentada por su puerto USB; ningún componente externo para esta primera prueba.

Cableado

Sin cableado: el LED va embarcado. En el DK los LED son activos a nivel bajo (el BSP lo sabe por el flag active-low).

Funcionamiento

GPIO_DT_SPEC_GET resuelve el alias led0 en (chip, pin, flags) en compilación; gpio_pin_configure_dt deja el pin en salida apagada y toggle + k_msleep(500) dan los 2 Hz.

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

Bajar a 0,5 Hz para un modo visible de reposo, usar PWM para una pulsación, o pasar a led1/led2 para un patrón multi-LED.

blinky.c

/* Blinky Zephyr — la LED0 de la carte clignote à 2 Hz.
 * L'alias devicetree led0 pointe sur la LED utilisateur du BSP
 * (P0.13 sur le nRF52833-DK, LED rouge sur le nRF52840-MDK).
 * Build : west build -b <board> ; flash : west flash. */
#include <zephyr/kernel.h>
#include <zephyr/drivers/gpio.h>

static const struct gpio_dt_spec led =
	GPIO_DT_SPEC_GET(DT_ALIAS(led0), gpios);

int main(void)
{
	if (!gpio_is_ready_dt(&led)) {
		printk("Puce GPIO absente\n");
		return 1;
	}
	/* INACTIVE : la LED s'éteint quel que soit le sens d'actif */
	gpio_pin_configure_dt(&led, GPIO_OUTPUT_INACTIVE);

	while (1) {
		gpio_pin_toggle_dt(&led);
		k_msleep(500);
	}
	return 0;
}

← Volver a la ficha