Which microcontrollers that can I buy to learn such an USART, UART, RS232, USB, SPI, I2C, TTL communication?
I feel as though the problem you are experiencing is that you are not sure where to start, and you need some help in accomplishing the necessary research yourself so you can teach yourself these protocols you've listed.

To me, it appears there are three steps to understand a relatively simple protocol (simple relative to protocols like Bluetooth) well and implement it into MCUs. I'm going to be generic here but I'll try to point you in some good directions the best I can so you can get started on your own research.

1: Learn the Protocol

Read about the protocol on a lower level; what signals are involved, the logic, timing requirements, how the data is transferred, etc. For instance, this appears to be a great article on teaching yourself how UART works on a low-level: 

Cytron's UART Tutorial. 

Find articles like this for all the protocols and really understand what is happening at the pins of a MCU.

2: Research Datasheets on MCUs

Find a MCU that will support this protocol and read the datasheet. Digikey is a great tool for finding MCUs and the datasheets associated with them. For example (I'm an AVR person myself), I'll choose the ever pervasive ATmega328p. Searching for this in Digikey yields the various packages for this chip. I'll choose DIP (ATmega328p DIP). 

Here you can open the datasheet for the MCU. In section 20, the datasheet discusses its USART HW (you can configure it to behave Asynchronously to become simple UART). This is where you will have to take your time and research how to set the various registers to configure the UART, and how to interface to the HW in general. 

Look at the HW design of the protocol itself:



The HW pieces in bold, e.g. UBRRn, UDRn, UCSRnA, UCSRnB and UCSRnC are registers that you interface to in order to use the USART HW. For instance, you can use the register UCSRnC to control whether or not the USART functions Synchronously or Asynchronously!

3: Actually Implement It

Grab the MCU of your choosing, build a power supply circuit and actually use it! Or, much more conveniently, interface to the registers yourself with Arduino; Arduino actually uses the ATmega328p by the way. Using Arduino out of the box  with its high level functions is not going to teach you the protocol involved. But actually messing with the registers in the lower level, you'll actually begin to understand the nuances and the intricacies involved.

Yes, it is a lot of work, but it is rewarding; it also teaches you invaluable skills along the way which are useful in EE.

TL;DR: Read a lot

Best of luck.