Hallo, ich stehe gerade echt auf dem Schlauch und komme nicht weiter; vielleicht könnt Ihr ja etwas Licht in die Sache bringen: ich möchte per SPI und DMA ein Display (480x320) beschreiben. Dabei bekomme ich 2 pixel in ein Byte (16 Farben). Das ganze möchte ich natürlich gerne in einem Rutsch per DMA übertragen. Allerdings hat mein framebuffer eine Größe von (480x320)/2 bytes = 76800 bytes, die HAL_SPI_Transmit_DMA Funktion kann aber nur eine Größe von size = uint16_t, womit mein Framebuffer zu groß ist. Also dachte ich mir, ich mache union für den Framebuffer mit einem uint16_t FB16Bit[38400], stelle dann den Bus auf auf 16Bit und übertrage das dann per HAL_SPI_Transmit_DMA(&hspi, (uint8_t*)FB16Bit, 38400); Allerdings stellt er den Inhalt dann quasi doppelt so groß und gestreift dar!?! Wo ist mein Denkfehler? Funktioniert das so überhaupt? Vielen Dank schon einmal im Voraus!
Was spricht dagegen den DMA Transfern nach 38400 nochmals zu starten und die restlichen 38400 zu senden? Das kostet kaum Zeit....
Moin, da spricht eigentlich gar nichts gegen, ich würde es nur einfach gerne verstehen ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.