Forum: Mikrocontroller und Digitale Elektronik STM32: SPI DMA 16 Bit aus 8Bit array


von Oz z. (ozzy)


Lesenswert?

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!

von Guest (Gast)


Lesenswert?

Was spricht dagegen den DMA Transfern nach 38400 nochmals zu starten und 
die restlichen 38400 zu senden? Das kostet kaum Zeit....

von Oz z. (ozzy)


Lesenswert?

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
Noch kein Account? Hier anmelden.