Skip to content

Simplicity Studio Uart Example Apr 2026

#include "em_device.h" #include "em_chip.h" #include "em_cmu.h" #include "em_gpio.h" #include "em_usart.h" #include <string.h> // USART instance – change to your selected peripheral #define UART_HANDLE USART0 #define UART_CLOCK cmuClock_USART0

Universal Asynchronous Receiver-Transmitter (UART) is one of the most fundamental and widely used interfaces in embedded systems. Whether you are debugging via logs, communicating with a sensor, or interfacing with a GSM module, UART is often the go-to protocol.

Try connecting two devices together, or hook up a GPS module to parse NMEA sentences over UART. Have questions or want to see a DMA or low-power UART example? Let me know in the comments below!

// Enable RX interrupt (optional but useful) USART_IntEnable(UART_HANDLE, USART_IEN_RXDATAV); NVIC_EnableIRQ(USART0_RX_IRQn); simplicity studio uart example

// Buffers char tx_buffer[64]; char rx_byte;

// Function to initialize UART void uart_init(void) // Enable clock for USART CMU_ClockEnable(UART_CLOCK, true);

// Send welcome message uart_send_string("Simplicity Studio UART Example\r\n"); uart_send_string("Type something, and I will echo it back:\r\n"); #include "em_device

// Interrupt handler for receiving data void USART0_RX_IRQHandler(void) if (USART_IntGet(UART_HANDLE) & USART_IF_RXDATAV) rx_byte = USART_Rx(UART_HANDLE); // Echo the character back USART_Tx(UART_HANDLE, rx_byte);

int main(void) // Chip initialization (important for errata) CHIP_Init();

Create a new file main.c and add the following code: Have questions or want to see a DMA

Introduction

// Initialize USART USART_InitAsync(UART_HANDLE, &init);

// Initialize UART uart_init();