uart3 can't receive entire data
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
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,
- Labels:
-
STM32F4 Series
-
UART-USART
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2021-05-10 12:42 AM
What baudrate did you set in UART3? or are you using automatic baudrate detection?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2021-05-10 2: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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2021-05-10 3:46 AM
I used 921600 and 430600,and both wrong....
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2021-05-10 4: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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2021-05-10 5: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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2021-05-10 5: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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2021-05-10 6: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?
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
2021-05-10 6: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.
