A GPIO is a software-controllable peripheral used to configure the device IO ports, also called pins.
A **GPIO** is a software-controllable peripheral used to configure the device IO ports, also called pins.
GPIOs are grouped in ports and so each GPIO has an identifier.
The identifiers have the following format: PXY, where X is the port name and Y is the pin number.
The identifiers have the following format: `PXY`, where `X` is the GPIO port name and `Y` is the pin number.
## Configuration
> :warning: **WARNING: Before using a GPIO it has to be correctly configured. A lot of times you can experience non-working code or drivers due to not initialized or configured GPIOs.**
...
...
@@ -75,28 +75,27 @@ somePin.alternateFunction(5);
## Discovery Board Pins
These are some commonly used pins that you'll need when writing software for **Discovery boards**.
You can find a complete pin usage description [here](https://os.mbed.com/platforms/ST-Discovery-F429ZI/).
- STM32F407VG_DISCO
#### STM32F407VG Discovery
| stm32f407vg | |
|--------------|---|
| Blue Led | PD15 |
| Red Led | PD14 |
| Orange Led | PD13 |
| Green Led | PD12 |
| User Button | PA0 |
| STM32F407VG | Pin |
|-------------|------|
| Blue Led | PD15 |
| Red Led | PD14 |
| Orange Led | PD13 |
| Green Led | PD12 |
| User Button | PA0 |
You can find more in the [datasheet](http://www.st.com/content/ccc/resource/technical/document/user_manual/70/fe/4a/3f/e7/e1/4f/7d/DM00039084.pdf/files/DM00039084.pdf/jcr:content/translations/en.DM00039084.pdf) for more.
You can find more in the [user manual](http://www.st.com/content/ccc/resource/technical/document/user_manual/70/fe/4a/3f/e7/e1/4f/7d/DM00039084.pdf/files/DM00039084.pdf/jcr:content/translations/en.DM00039084.pdf) for more.
## Miosix Used Pins
These are some pins that are used by default from the kernel when running on **STM32 micros** (all paths are referred to `/libs/miosix-kernel/miosix`):