How to make communication between microcontrollers
The best way depends on exactly how much data do this microcontrollers have to communicate among them, the distances the signals have to travel, the place where this communication will take place, the amount of pins/wires you're willing to use to wire everything up, the cost of the system as regards your programming time and the hardware cost. For instance CAN bus allows for communication in noisy/industrial/automotive environments but is hard to implement and can't transfer data as fast as usb 3.0 does.

If I were you, and didn't have any stringent requirements for protocol implementation, I would consider the points I mentioned and end up with the easiest option as long as community support and hardware is concerned. Search for an easy to follow and comprehensive tutorial of a protocol readily available on the boards you're considering. Each protocol has it's pros and cons so it's not as if you would be better off learning how to implement one in particular.

As regards selecting one microcontroller, you seem to be looking for a readily assembled board. There's a huge selection to chose from, and many times the right board selection boils down to other capabilities than just having a communication protocol hardware built-in. The blue-pill board you're mentioning seems to be kind of the Arduino Due "equivalent" in terms of specs, check which board suits your needs best.