Learn ZEPHYR-RTOS with Real Code Examples
Updated Nov 27, 2025
Code Sample Descriptions
1
Blink LED Task
#include <zephyr.h>
#include <device.h>
#include <drivers/gpio.h>
#define LED_PIN 2
#define SLEEP_TIME_MS 500
default struct device *led_dev;
void blink_led(void)
{
while(1) {
gpio_pin_toggle(led_dev, LED_PIN);
k_msleep(SLEEP_TIME_MS);
}
}
void main(void)
{
led_dev = device_get_binding("GPIO_0");
gpio_pin_configure(led_dev, LED_PIN, GPIO_OUTPUT);
blink_led();
}
Toggle an LED on a GPIO pin using a Zephyr thread.
2
Periodic Thread Example
void periodic_task(void *arg1, void *arg2, void *arg3)
{
while(1) {
printk("Periodic task running\n");
k_sleep(K_SECONDS(1));
}
}
K_THREAD_DEFINE(periodic_thread, 1024, periodic_task, NULL, NULL, NULL, 7, 0, 0);
Create a periodic thread to execute a task every 1 second.
3
Sensor Reading Example
#include <zephyr.h>
#include <device.h>
#include <drivers/sensor.h>
void main(void)
{
struct device *dev = device_get_binding("SENSOR_0");
struct sensor_value val;
while(1) {
sensor_sample_fetch(dev);
sensor_channel_get(dev, SENSOR_CHAN_ALL, &val);
printk("Sensor value: %d\n", val.val1);
k_sleep(K_SECONDS(2));
}
}
Read data from a sensor and print values periodically.