# MaJerle/stm32-usart-uart-dma-rx-tx

STM32 examples for USART using DMA for efficient RX and TX transmission

Repository: https://github.com/MaJerle/stm32-usart-uart-dma-rx-tx
Canonical: https://ross.abutalabs.com/products/stm32-usart-uart-dma-rx-tx
Language: C
License: MIT
License Family: permissive
Topics: stm32, usart, dma, receive, data, bluepill, ringbuff, ring, buff, buffer, circular, dma-mode, dma-tc
Last push: 2026-08-17T07:53:25+00:00

## Health v2 (maintenance only)
Score: 76/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 98, release rhythm 35, longevity 100
- inputs: {"age_days": 2874, "days_push": 16, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1807, forks 395 (observed 2026-08-28T04:05:39.238916+00:00)

## What it is
An application note with C example code demonstrating efficient UART/USART data reception and transmission on STM32 microcontrollers using DMA. It explains unknown-length reception with idle-line/timeout detection and CPU-free TX using circular buffers.

## Use cases
- receive unknown-length UART data on STM32 with DMA
- offload UART transmission from CPU using DMA
- implement DMA ring buffer for USART RX
- handle high-baudrate serial communication on STM32
- learn UART idle line and receiver timeout interrupts
- example code for Blue Pill UART DMA

## When to choose
- you are developing on STM32 and need efficient UART RX/TX with DMA
- you receive variable-length serial data and want to avoid CPU overhead
- you need reference examples for DMA half-transfer/transfer-complete and receiver-timeout events

## When to avoid
- you target non-STM32 microcontrollers
- you need a general-purpose UART driver library rather than examples
- you use polling or simple interrupt-based UART at low baudrates

## Facets
- artifact type: learning-resource
- maturity: stable
- function: embedded, developer-tools, documentation
- domain: embedded-systems, hardware, tutorials
- platform: embedded, c, cpp
- tags: stm32, uart, usart, dma, embedded-c, application-note, ring-buffer, bluepill

## Member repositories
- MaJerle/stm32-usart-uart-dma-rx-tx (main) score 76

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:39.238916+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:21:25.672084+00:00, confidence not recorded.
  - readme: https://github.com/MaJerle/stm32-usart-uart-dma-rx-tx (fetched 2026-08-28T04:05:39.238916+00:00, sha d8f0271b8440)
- Data as of 2026-08-30T08:39:29.467469+00:00.
