Sending Data from STM32 to VOFA+ via UART

Implemantation Overview

This guide demonstrates how to transmit floating-point data from an STM32 microcontroller to VOFA+ desktop application using UART communication with JustFloat protocol.

Required Files

Create and include two files in your project:

  • Vofa.c - Implementation file
  • Vofa.h - Header file

Data Conversion Structure

Define a union type for float-to-bytes conversion:

typedef union {
    float float_value;
    uint32_t raw_bytes;
} FloatConverter;

Float to Byte Conversion Fucntion

Implement a function to decompose float values in to individual bytes:

void convert_float_to_bytes(float input_value, uint8_t *output_buffer) {
    FloatConverter converter;
    converter.float_value = input_value;
    
    output_buffer[0] = converter.raw_bytes;
    output_buffer[1] = converter.raw_bytes >> 8;
    output_buffer[2] = converter.raw_bytes >> 16;
    output_buffer[3] = converter.raw_bytes >> 24;
}

Data Transmission Function

Create a function to send data packets to VOFA+:

void transmit_to_vofa(void) {
    float value_a = 50.0f;
    float value_b = 60.0f;
    uint8_t data_buffer[4];
    uint8_t packet_end[4] = {0x00, 0x00, 0x80, 0x7f};
    
    convert_float_to_bytes(value_a, data_buffer);
    uart_send_data(data_buffer, 4);
    
    convert_float_to_bytes(value_b, data_buffer);
    uart_send_data(data_buffer, 4);
    
    uart_send_data(packet_end, 4);
}

VOFA+ Configuration

Configure VOFA+ desktop application:

  • Select JustFloat protocol mode
  • Set appropriate COM port and baud rate
  • Verify successful data reception

Tags: STM32 UART VOFA+ JustFloat embedded-systems

Posted on Wed, 23 Sep 2026 16:51:59 +0000 by krishnam1981