Skip to main content
Associate
July 6, 2026
Question

UART output missing characters in XCTU terminal (STM32 + VL53L0X)

  • July 6, 2026
  • 3 replies
  • 21 views

I am working with an STM32 microcontroller and a VL53L0X sensor. The sensor readings are transmitted over UART1 at 115200 baud, 8N1.

I have verified:

  • UART initialized at 115200 baud, 8N1, no parity

  • XCTU terminal set to ASCII mode (Hide Hex enabled)

  • Line endings set to \r\n

Any suggestions for reliable output?

Numeric values are printed correctly, but the text parts like "Distance" and "mm" are missing or appear as dots in XCTU’s terminal. For example, instead of:

Code

Distance: 25 mm

I see:

Code

D..ta..e: 25 mm

3 replies

Andrew Neil
Super User
July 6, 2026

Welcome to the forum

Please see How to write your question to maximize your chances to find a solution for best results.

In particular, what STM32 and what board are you using ?

 

XCTU terminal

Never head of that one - do you mean this: https://www.digi.com/support/knowledge-base/x-ctu-xctu-software ?

 

missing or appear as dots in XCTU’s terminal.

Maybe this is how it shows reception errors?

Commonest reason for that is wrong baud rate.

For reliable baud rates, avoid using internal RC oscillators.

Have you used an oscilloscope to check what the UART is actually sending?

 

Before adding the VL53L0X, have you got a basic UART “Hello world” working ?

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
27_itAuthor
Associate
July 6, 2026

@Andrew Neil Thanks for responding! Hello world also shows missing characters and  dots,  baud rate at both ends are equal and am using HSE clock source only . Yes  https://www.digi.com/support/knowledge-base/x-ctu-xctu-software it is this software only 

Andrew Neil
Super User
July 6, 2026

baud rate at both ends are equal  

You mean your settings are the same ?

But how have you proved that you are actually getting the baud rate that you think you configured?

Again, Have you used an oscilloscope to check what the UART is actually sending?

A continuous stream of uppercase ‘U’ is good for checking baud rate on a scope …

 

Have you tried using a “standard” terminal; eg, TeraTerm?

Maybe this Digi utility has some “quirks”, or places some special interpretations on your data.

The description at that link doesn’t really suggest that it’s intended as a general-purpose terminal

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
ST Technical Moderator
July 6, 2026

hello ​@27_it 
as ​​​​@Andrew Neil  you need to provide more details so that support can identify the root cause of the issue.

To start troubleshooting, create a simple UART project that transmits "Hello world" in a known serial monitor.

If STM32CubeMX is used to create the project, ensure that the input clock frequency matches the actual frequency in use, especially if HSE is the clock source in.
BR
Gyessine

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question.