Quick comment about the GPIO registers:

readAddress = (GPIO6_DR >> 16);

If you are trying to read the actual data on the IO pins.
This may or may not work... that is from the Reference...