Das STM32F429-Discovery-Board besitzt einen 4Mx16 SDRAM-Baustein. Das FMC-Beispiel greift darauf mittels uint32_t zu:
1 | *(__IO uint32_t*) (SDRAM_BANK_ADDR + 4*index) = x; |
2 | y = *(__IO uint32_t*) (SDRAM_BANK_ADDR + 4*index); |
Wenn ich nur mit uint16_t und 2* zugreife, funktioniert das Ganze bei mir nicht (es werden nur Nullen gelesen). Wieso ist der Zugriff nur mit uint32_t korrekt, obwohl der Datenbus 16 Bit breit ist? Läßt sich das umkonfigurieren (habe es einen Tag lang erfolglos versucht)?