You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Setup: STM32 Development board (STM32H573I-DK) with STM32H573IIK3Q.
Connect USB cable to STLINK port. Used for debug (probe-rs) and VCP (virtual comport).
I used putty to connect VCP port with settings: 115200-8-n-1.
UART7 can also be used. In my project that was I first noticed this behaviour.
After reset, you see 'Hello!' in putty terminal.
If you slowly (1 key/sec) type 1 to 0 in putty you can observe this behavior
I also tested this code on stm32u0 (arm thumbv6) and work fine.
But stm32u0 has a different DMA block.
So I think there is something wrong with the DMA setup.
I also noticed that:
the first read_until_idle() always return Ok(0).
First two transfers seems to be fine.
@Dirbaio you seems the initial author of the stm32u5 dma code.
Any idea?
-- update --
I saw that I mention STM32U5 but I tested it on a stm32H5.
But I also have a STM32 Development board (DK32U5G9J-DK1) with STM32U5G9NJH6Q at my desk.
I see same behaviour on stm32u5 as well.
The text was updated successfully, but these errors were encountered:
vDorst
changed the title
STM32U5: uart.read_until_idle() every second transfer also returns the prevoius data + new data.
STM32U5/H5: uart.read_until_idle() every second transfer also returns the prevoius data + new data.
Feb 18, 2025
I make a repo to easy demostrate the issue: https://github.com/vDorst/uartdmabug
Setup: STM32 Development board (STM32H573I-DK) with STM32H573IIK3Q.
Connect USB cable to STLINK port. Used for debug (probe-rs) and VCP (virtual comport).
I used putty to connect VCP port with settings: 115200-8-n-1.
UART7 can also be used. In my project that was I first noticed this behaviour.
After reset, you see 'Hello!' in putty terminal.
If you slowly (1 key/sec) type
1
to0
in putty you can observe this behaviorPutty ouput
Probe-rs output:
It is not only a single character but also has the same behavior with larger data.
If I parst
ACBD
,EFGH
,IJLK
as seperet groups into putty I got this output:Putty ouput
Probe-rs output:
I also tested this code on stm32u0 (arm thumbv6) and work fine.
But stm32u0 has a different DMA block.
So I think there is something wrong with the DMA setup.
I also noticed that:
read_until_idle()
always return Ok(0).@Dirbaio you seems the initial author of the stm32u5 dma code.
Any idea?
-- update --
I saw that I mention STM32U5 but I tested it on a stm32H5.
But I also have a STM32 Development board (DK32U5G9J-DK1) with STM32U5G9NJH6Q at my desk.
I see same behaviour on stm32u5 as well.
The text was updated successfully, but these errors were encountered: