UART is asynchronous -- unlike SPI or I2C there's no shared clock line at all. Both sides just have to agree on a baud rate up front, and each byte is framed with a start bit and one or more stop bits so the receiver can tell where it begins and ends. It's point-to-point: TX on one device wires to RX on the other and vice versa, not a shared bus multiple devices can sit on.

The DB9/DB25 pinout below is RS-232 -- the traditional PC-side connector and voltage-level standard for carrying UART signals over a cable. Microcontrollers almost never use RS-232's voltage levels directly; they expose bare TTL-level TX/RX pins instead, and something like an FTDI converter bridges that to USB.

The pin layout is viewed from the front and the solder points pointing away from you:

Male
Female

Most of the time only GND, TxD, and RxD is needed. The next level of handshake is RTS and CTS. Very rarely DTR and DSR is necessary. I never used DCD or RI.

Signal Origin Pins
Abbreviation Name Importance DCE (in) DTE (out) DB 9 DB 25
GND
Ground
***
-
-
5
7
RxD
Received Data
***
x
2
3
TxD
Transmitted Data
***
x
3
2
CTS
Clear To Send
**
x
8
5
RTS
Request To Send
**
x
7
4
DSR
Data Set Ready
*
x
6
6
DTR
Data Terminal Ready
*
x
4
20
DCD
Carrier Detect
-
x
1
8
RI
Ring Indicator
-
x
9
22