ARM Cortex microcontrollers have a great number of peripherals. So many in fact that you won't be able to use many of them at the same time, except possibly on the highest pin count devices. The ST-Micro
Discovery-F4 module provides six USARTs, two USB ports, three I2C ports, three SPIs, sixteen ADC channels, ethernet and more...
BUT you have to pick and choose which are connected to the 80 available GPIO pins.
The
Discovery-F4 module has up to 10 alternate functions on some pins to allow you to choose whether to use the pin as GPIO or as a peripheral pin. Some functions are available on multiple pins. However, pin conflicts may mean you won't be able to use all of the peripherals you want at the same time.
I have created an Excel spreadsheet to help in the pin assignment process. The STM32-Discovery-F4 pinout spreadsheet lists the Discovery modules pin information along with the alternate functions available for each pin. This spreadsheet helps me to plan my projects by assigning pin names and rearranging the rows to group related pins. I have color coded the pin functions to help me see what functions are available on which pins.