2026-05-23 8:43 AM
Hi, I cannot manage to receive the bytes on UART protocol on an STM32U0 when using the STLINK-V3MINIE.
The RX works properly (I can send data to the PC), so the pins are not swapped. The Vref of STLINK is 3V3, and the STLINK measures it correctly. Moreover, I can successfully program the U0 using the STLINK so I think both devices are in good shape.
The UART baud rate is 115200 b/s. I have attached an oscilloscope to observe the signal. When NOT connected to the MCU, the TX signal is clear as expected (0V as low and 3V3 as high). If I connect it the MCU, the signal is still very clear and sharp but reduced (the "low" level is about 1.65V and the high level is 3V3). The schematic is the most straightforward: no components between the STLINK and the MCU.
The firmware on STLINK is the V3J17M10.
Currently, I have solved it using another USB-serial converter (CP2102) and it works flawlessly in both directions, using interrupts, DMA and whatever firmware tricks, but I would understand why the STLINK doesn't work properly.
2026-05-23 10:03 AM
Hi,
so just do a simple test: put 1k ohm in the tx line , then check voltage levels on both sides of resistor.
So it should be clear then: is tx sick, or is there some pullup on the target active.
2026-05-25 2:03 PM
I will try the measurement with the oscilloscope, but I have just tried to test 1kOhm but it doesn't receive. Moreover, I have tried to loopback the uart on STLINK and it works, so the TX channel is alive.
2026-05-25 11:57 PM
Hello,
A low level at 1.65V shows a conflict on the pin. On which side the oscilloscope is connected when you measure 0V ? If it is the V3MINIE side, you see the output of a level shifter, always driven, provided T_VCC is present (seems OK in your description). In this case, you should check the pin configuration at MCU side: it is perhaps not configured as input (or alternate to UART_Rx)
2026-05-26 10:40 AM
I have tested with 1k and if I measure the voltage between the resistor and the TX of STLINK, the signal is perfect 0V - 3V3. If I measure the voltage between the STM32U0 (RX) and the resistor the voltage is stuck at 3V3.
It seems there is a hidden pull-up on MCU or on my board?
This is the GPIO config for the UART1 in MXCube (latest version).
2026-05-27 12:12 AM
The GPIO config in CubeMx does perhaps not reflect the reality of the pin (initialization might have been badly done, or something overwritten afterwards ?). The best way to ensure would be to check directly the GPIO registers with a debugger, mainly GPIO_MODER to check that PB7 is really configured as Alternate, then GPIO_AFRL to check against the "Alternate functions" table from the datasheet. The pull-up is recommended on the Rx pin to have the pin polarized (and then, predictable behavior), even if nothing is physically connected behind (or connected to a floating output), and should not generate such a conflict. If all OK at this level, there is perhaps a conflict at hardware level ?
We’re moving the ST Community to a new platform to give you a better and more reliable community experience.