I have three VLANs, and I want to communicate between them, but all packets are dropped. I made a trunk to allow all VLANs.
Should I use STP to control broadcast storms?
When you have such a loop STP will prevent broadcast storms. STP will choose a single path to the root bridge, and that will eliminate the loops. STP should be enabled by default on the switches. STP will be per VLAN for Cisco switches.
Also, you should not leave it up to chance for which switch will become the root bridge, and you should set the priority for the VLAN to be very low on the switch that you want to be the root.
A big problem with your topology is that you need a router for traffic to get from one VLAN to another. You can use a layer-3 switch if you enable routing on it, but each VLAN is completely separate from every other VLAN, and it requires routing from a device on one VLAN to communicate with a device on another VLAN.
It also looks like you need the connections between the switches to be configured as trunks to carry traffic for all the VLANs.