STM32 Logger
Loading...
Searching...
No Matches
logger.c File Reference

Implementation of the modular logging system for STM32-based MCU projects. More...

#include "logger.h"
#include <stdio.h>
#include <string.h>

Macros

#define LOG_USE_UART   1
#define LOG_USE_SD   0
#define LOG_USE_DMA   0
#define LOG_USE_IT   1
#define LOG_BUFFER_SIZE   256
#define LOG_RING_BUFFER_SIZE   1024
#define LOG_UART_HANDLE   huart1

Functions

void HAL_UART_TxCpltCallback (UART_HandleTypeDef *huart)
 UART transmission complete callback handler. Should be called from HAL_UART_TxCpltCallback().
void Log_Init (void)
 Initializes the logging system.
void Log_SetLevel (LogLevel level)
 Sets the active logging verbosity level.
void Log_Disable (void)
 Disables all logging at runtime.
void Log (LogLevel level, const char *format,...)
 Logs a formatted message based on severity level.
void Log_Flush (void)
 Forces a flush of buffered data to the SD card.
 __attribute__ ((weak))
 Default UART log output (weak). Can be overridden for custom UART routing or formatting.

Variables

UART_HandleTypeDef LOG_UART_HANDLE

Detailed Description

Implementation of the modular logging system for STM32-based MCU projects.

Macro Definition Documentation

◆ LOG_BUFFER_SIZE

#define LOG_BUFFER_SIZE   256

◆ LOG_RING_BUFFER_SIZE

#define LOG_RING_BUFFER_SIZE   1024

◆ LOG_UART_HANDLE

#define LOG_UART_HANDLE   huart1

◆ LOG_USE_DMA

#define LOG_USE_DMA   0

◆ LOG_USE_IT

#define LOG_USE_IT   1

◆ LOG_USE_SD

#define LOG_USE_SD   0

◆ LOG_USE_UART

#define LOG_USE_UART   1

Function Documentation

◆ __attribute__()

__attribute__ ( (weak) )

Default UART log output (weak). Can be overridden for custom UART routing or formatting.

Default SD card log output (weak). Can be overridden for filters, timestamps, or buffering.

Parameters
msgNull-terminated string to send.
msgNull-terminated string to append to log file.

◆ HAL_UART_TxCpltCallback()

void HAL_UART_TxCpltCallback ( UART_HandleTypeDef * huart)

UART transmission complete callback handler. Should be called from HAL_UART_TxCpltCallback().

Parameters
huartPointer to the HAL UART handle.

◆ Log()

void Log ( LogLevel level,
const char * format,
... )

Logs a formatted message based on severity level.

Log a formatted message if the level passes the threshold.

  • Message is dropped if below current log level or if logging is disabled.
  • Output is routed to UART and/or SD depending on configuration.
Parameters
levelSeverity level (LOG_LEVEL_ERROR, etc.)
formatprintf-style format string.
...Arguments to format.

◆ Log_Disable()

void Log_Disable ( void )

Disables all logging at runtime.

Disable all logging at runtime.

◆ Log_Flush()

void Log_Flush ( void )

Forces a flush of buffered data to the SD card.

Flush output buffers.

◆ Log_Init()

void Log_Init ( void )

Initializes the logging system.

Initialize the logging system.

  • Resets the ring buffer
  • Enables logging
  • Opens SD file if SD logging is enabled

◆ Log_SetLevel()

void Log_SetLevel ( LogLevel level)

Sets the active logging verbosity level.

Set the active logging level.

Parameters
levelDesired log level (e.g., LOG_LEVEL_DEBUG).

Variable Documentation

◆ LOG_UART_HANDLE

UART_HandleTypeDef LOG_UART_HANDLE
extern