2021-05-10 12:04 AM
Hi All
I used UART3 of STM32F429 to receive data(larger than 10K). If the baudrate is 230400,the RX can receive entire file; But If the baudrate was 460800 or 921600,I can't get the entire file(143111 of 143316 bytes). Anyone can help?
Regards,
2021-05-10 12:42 AM
What baudrate did you set in UART3? or are you using automatic baudrate detection?
2021-05-10 02:13 AM
Disable RX overrun detection or receiver side. Some versions of ST library cannot handle it and recover properly. IMHO it's better to disable it at all.
Then use X/Ymodem or other protocol with error correction.
-- pa
2021-05-10 03:46 AM
I used 921600 and 430600,and both wrong....
2021-05-10 04:06 AM
At some point you exhaust your time budget. You can't just raise the baudrate infinitely and expect it to work.
I suppose you get overruns in the interrupt handler.
> But If the baudrate was 460800 or 921600,I can't get the entire file(143111 of 143316 bytes).
I think there is no way around firing up the debugger and see what actually happens.
2021-05-10 05:20 AM
I think youre mixing two different concepts: baudrate/bitrate and file transfer speed.
You cannnot magically change the baudrate and expect both RX TX to work, they need to match
Find out which baudrate you want (higher baudrates faster transfer) and fix it at rx side and tx side.
Also higher baudrate higher error chance and shorter the wire you can use.
2021-05-10 05:30 AM
My device connected with uart3 can adjusted the baudrate(0 is auto, 115200, 230400, 460800 and 921600),so I can set the device and STM32F429 uart the same baudrate.
2021-05-10 06:08 AM
Not sure how much anyone can help with a "not working" situation, and no implementational detail.
Where is the data being stored?
Do you have any kind of flow control?
Perhaps count the bytes lost to overflow, framing, and other errors?
2021-05-10 06:59 AM
Can you tell us more thing about your "device", and how does the 0 is auto work?
use the same baudrate in your "device" and in your "STM32F429 " and it should work.