Most of the time RS232 and UART come together in serial communication theories. Are they both the same? From my readings I concluded UART is a hardware form of RS232 protocol. Am I correct?
No, UART and RS-232 are not the same.
UART is responsible for sending and receiving a sequence of bits. At the output of a UART these bits are usually represented by logic level voltages. These bits can become RS-232, RS-422, RS-485, or perhaps some proprietary spec.
RS-232 specifies voltage levels. Notice that some of these voltage levels are negative, and they can also reach ±15V. Larger voltage swing makes RS-232 more resistant to interference (albeit only to some extent).
A microcontroller UART can not generate such voltages levels by itself. This is done with help of an additional component: RS-232 line driver. A classic example of an RS-232 line driver is MAX232. If you go through the datasheet, you'll notice that this IC has a charge pump, which generates ±10V from +5V.
UART (or USART) - Universal (Synchronous) Asynchronous Receiver/Transmitter
This is, essentially, a serial communications interface. The "universal" part means that it can be configured to support many different specific serial protocols. The term is generic, and does not represent a specific standard. At minimum it means that it has a
RS-232 - A standard defining the signals between two devices, defining the signal names, their purpose, voltage levels, connectors and pinouts.
This is a specific interface standard that allows for equipment interoperability. While two pieces of hardware may have UARTs, you don't know that they'll connect without damage, or communicate properly unless you know they have the same pinout and voltage standards, or include a converter or specially wired cable specific to the interconnection of these two specificl devices. To avoid the need for special converters or cables, the manufacturers may choose to follow the RS-232 standard. You know, then, that a standard RS-232 cable will connect the two.
However, neither the UART, nor the RS-232 standard define what is sent on the
UARTs do not typically interface directly with RS-232. You will need to convert the output of the UART to the +/-12V standard that RS-232 requires. A complete RS-232 interface will typically involve both a UART and an RS-232 level converter. Further, the RS-232 standard includes the definition of several other signalling pins besides
So while a UART may help you implement an RS-232 interface, it is not an RS-232 interface itself.
You are correct. UART is a hardware port, and RS232 is a communication protocol that can be implemented on it.
You might be interested to know that most "RS232" devices you run into deviate slightly from the standard. TIA-232-F is the current controlling document, but some features of the communication aren't explicit in the standard. I have frequently found industrial devices that use the standard "RS232" serial port, but they do not adhere to the standard - meaning that the USB to serial dongle won't work with their software, because it needed a hardware port that it could directly manipulate.