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