STM32 Morse Code Translator

Overview

The STM32 Morse Translator project is an embedded software development endeavor built for the STM32 Nucleo Board. It implements a Morse code translator using UART serial communication and an LED indicator. The project was initially designed as part of the UBC Orbit Command and Data Handling (CDH) subsystem assignment but has since been enhanced and redesigned.

Features

The project showcases the following features:

  • Blinking of the LD2 LED pin on the STM32L476RG board
  • Communication with a computer terminal through UART serial communication
  • Translation of an ASCII phrase to Morse code
  • Display of the Morse code translation on an LED

Project Structure

The project is structured as follows:

  • STM32CubeMX: Project files generated using the STM32CubeMX Graphical Tool Software
  • Source Code: main.c and main.h files containing the translated functionality
  • Serial Communication: UART peripheral set in blocking mode for communication with the user
  • DMA Controller: Direct Memory Access (DMA) utilized for efficient data transfer between UART and memory

Build Tools

The project utilizes the following build tools:

  • VSCode Editor: Configured with build and debug settings, integrated with Cortex-Debug extension for enhanced debugging capabilities
  • Flash Executable: ARM GCC C Compiler, Make Automation Tool, and OpenOCD Debugger used for flashing the executable onto the STM32 Nucleo Board

Demonstration

For a demonstration of the project, please watch the video here.

The video showcases the input via keyboard and the corresponding output on the STM32 Nucleo Board. Additionally, an image demonstrates the UART communication to the terminal.

Credit

The project was inspired by a UART-DMA tutorial from the Controllers Tech YouTube channel.

Built With

Share this project:

Updates