cancel
Showing results for 
Search instead for 
Did you mean: 

No Output on PuTTY – STWINBX1 USART3 via ST-LINK V3MINI (COM3)

Mahdouch
Associate III

Hi everyone,

I'm working with an STWINBX1 board and using ST-LINK V3MINI for debugging and serial communication. However, I can't see any output on PuTTY (COM3 @ 115200 baud), even though everything seems correctly configured.

Setup Details:

  • Board: STWINBX1
  • Connection: ST-LINK V3MINI (COM3 appears in Device Manager as "STMicroelectronics STLINK Virtual COM Port")
  • USART Configuration:
    • USART3 enabled by default
    • TX/RX mapped to correct GPIOs (PB10/PB11 or PD8/PD9)
    • Baud Rate: 115200
    • Data Bits: 8, Stop Bits: 1, Parity: None, Flow Control: None
  • Tools Used:
    • STM32CubeIDE for debugging (flashes successfully)
    • STM32CubeProgrammer (UART connection to COM3 fails)
    • PuTTY (No output when running code)

What I Tried So Far:

:white_heavy_check_mark: Checked and confirmed USART3 is initialized in main.c
:white_heavy_check_mark: Added debug messages via HAL_UART_Transmit(&huart3, ...)
:white_heavy_check_mark: Toggled an LED before sending UART data (LED toggles, so the function executes)
:white_heavy_check_mark: Checked in STM32CubeMX that USART3 is mapped to the correct GPIOs
:white_heavy_check_mark: Verified ST-LINK V3MINI appears as COM3 in Device Manager
:white_heavy_check_mark: Tried enabling/disabling "VCP UART" in STM32CubeProgrammer
:white_heavy_check_mark: Tested different baud rates in PuTTY

Issue:

  • No data appears on PuTTY (COM3)
  • STM32CubeProgrammer UART mode cannot connect ("Error: Activating device: KO, verify boot mode and serial settings")

Questions:

  1. Does ST-LINK V3MINI actually support forwarding USART3 to the PC?
  2. Is there a known issue with STWINBX1 and ST-LINK VCP (Virtual COM Port)?
  3. Should I use USART1 instead of USART3, or does ST-LINK only work with specific USARTs?
  4. Do I need to configure Hardware Flow Control (RS232)?

Any help would be greatly appreciated!

1 ACCEPTED SOLUTION

Accepted Solutions

As I might have mentioned, I am not really versed CubeIDE.
Although the screenshots seem to indicate the serial link is correct so far.
You would have to check is that PD5 and PD6 are not connected to other external circuitry that prohibit usage as UART. A good ("bad") example are some Discovery boards with LCD or external memory, where the external bus interface consumes most of the peripheral connections & options.
Looking it up, ST's website says :
> For wired connectivity, it includes a USB Type-C® port that can be used for power supply, data transfer and STM32 programming via DFU, and an RS-485 transceiver. 

This is a relatively broad statement, I would check the user manual about details.
RS-485 is very similiar to "normal" RS-232, but not compatible on electrical level.


I would first check what works, and what doesn't.
Flash an application that transmits regularly via UART2, and then check the UART signals (Tx) near the target MCU, at the debug connector, and finally at the ST-LinkV3 (Rx). A scope would be optimal, but a logic analyser works, too.
If the STWinbx1 board has a MCU reset button, you don't even need to fire up the CubeIDE debugger. Just connect the probe, and press rest. You should see at least UART signals on the UART2.Tx pin of the target MCU.

View solution in original post

13 REPLIES 13

@Mahdouch wrote:

2. Should I use USART1 instead of USART3, or does ST-LINK only work with specific USARTs?


The ST-Link neither knows nor cares what UART you use - all it does is send data out of its 'send' pin, and all it sees is data arriving at its 'receive' pin. It doesn't even know that you're using an STM32 at all!

Start by doing a basic application which just transmits from the UART - nothing else - to prove basic connectivity.

https://wiki.st.com/stm32mcu/wiki/Getting_started_with_UART

https://wiki.st.com/stm32mcu/wiki/STM32StepByStep:Step3_Introduction_to_the_UART

https://community.st.com/t5/stm32-mcus/implementing-uart-receive-and-transmit-functions-on-an-stm32/ta-p/694926 

 

Some tips on debugging serial comms:

https://community.st.com/t5/community-guidelines/how-to-write-your-question-to-maximize-your-chances-to-find-a/tac-p/706966/highlight/true#M49

Hello @Andrew Neil 

Thanks for the links and suggestions! I’m having a look at them now and will explore the resources provided. I’ll keep you updated on my progress.

Best regards,
Mahdouch

Welcome back!

@Andrew Neil 

I carefully read those links and tried everything, but I still can't get it to work. I understand that the ST-Link doesn’t care which UART is used—it just transmits and receives data. I even tested a basic UART transmission, like printing 'Hello World,' but it didn’t show up on PuTTY.

Interestingly, when I used the B-U585I-IOT02A, I was able to see real-time accelerometer data in PuTTY, but with my main board, the STEVAL-STWINBX1, nothing appears. I’ve done everything possible, but I can’t figure out what’s wrong.

here is the stlink that i use to debug with stwinbx1

STLINK-V3MINI - STLINK-V3 compact in-circuit debugger and programmer for STM32 - STMicroelectronics


@Mahdouch wrote:

when I used the B-U585I-IOT02A, I was able to see real-time accelerometer data in PuTTY, but with my main board, the STEVAL-STWINBX1, nothing appears.


So look carefully at the differences between those 2 boards, and your setups using those boards.

In particular:

  • Are you sure that you're connecting the ST-Link to the correct pins?
  • Check that there is nothing on the STEVAL-STWINBX1 blocking the use of those pins.

> Interestingly, when I used the B-U585I-IOT02A, I was able to see real-time accelerometer data in PuTTY, but with my main board, the STEVAL-STWINBX1, nothing appears. I’ve done everything possible, but I can’t figure out what’s wrong.

I think I can tell you what's wrong.

> here is the stlink that i use to debug with stwinbx1
> STLINK-V3MINI - STLINK-V3 compact in-circuit debugger and programmer for STM32 - STMicroelectronics


The former board has an onboard ST-Link.
The latter one, which you have problems with, is a separate board.

Check the schematics of the B-U585I-IOT02A board - you will find UART pins of the target MCU are wired to respective UART pins on the onboard ST-Link.

If you have a separate ST-Link, you need to do the wiring yourself. Or can attach a serial-USB converter directly to the target (without the ST-Link).

@Ozone @Andrew Neil , first of all thank you all for your help

but the last step " If you have a separate ST-Link, you need to do the wiring yourself. Or can attach a serial-USB converter directly to the target (without the ST-Link). "

i didn't understand it since my St-link v3mini is connected to my stwinbx1 board via this cable directly (image below) and then from St-link V3mini to my pc via USB-b, that's it.

14-pin STDC14 Cortex Ribbon Cable - 50 mil pitch | Tag-Connect

if there is something else I'm missing ?

 

 


@Mahdouch wrote:

my St-link v3mini is connected to my stwinbx1 board via this cable directly

AndrewNeil_0-1740508051986.png
AndrewNeil_1-1740508166139.png

Are you sure that cable (and the place where you connect it) carries a UART connection?

Could be just SWD ... ?

 

@Andrew Neil 

At this point i don't really know but the main board itself (Steval-stwbxcs1a) carries UART connection and for the ST-link v3mini also "images below"

i think this could be the issue yet i don't really know how to solve it

> i didn't understand it since my St-link v3mini is connected to my stwinbx1 board via this cable directly (image below) and then from St-link V3mini to my pc via USB-b, that's it.

This cable provides the debug connection.
You would need to check the documentation of the adapter and the schematics of your board to see if this connection provides the serial connection required.

Here the respective parts of the schematics from another STM32 baord, with onboard ST-Link. 

Ozone_0-1740552294974.png

And in the detailed schematics:

Ozone_1-1740552645927.png

ST-Link ...

 Ozone_3-1740552975200.png

 

... and the MCU.

The board this example is from is the F746 Nucleo I had at hand.
As you can see, the serial connection between onboard ST-Link and target MCU exists on board level.
With your board, this is obviously not the case.
Since I don't have either of your boards (STWINBX1 or ST-Link V3MINI), you would need to check yourself.