USART is an asynchronous transmission whereas UART isn't (unless there's more to it). As shown in the photo below, USART being synchronous doesn't need start and end bits since clock is used to sync the data, whereas, in UART, you do need start and stop bits; for rx and tx to talk, they need to be on the same baud rate so when the tx sends out a start bit, rx receives it right away, yeah?
But in STM32F4, I see they use the term USART
but the implementation does seem to have a clock. Is there any specific reason? what am I missing?
Also, is oversampling at the RX mainly done to detect errors? I see it samples 3 bits in the center, and if all of them are the same, there's no error otherwise there is. And you can select the oversampling (8,16) based on your baud rate I guess. What about parity check then?
they need to be on the same baud rate so when the tx sends out a start bit, rx receives it right away
... the start bit is always received ... it is the subsequent data bits that get incorrectly detected if the baud rate is mismatched \$\endgroup\$