STM32 - Alignmentproblem?

OP Persönliche Seite #2375688
Lesenswert?
• ▲
▼
Hallo,

ich habe ein komisches Problem: Ich nutze einen STM32 um mittels SPI ein 
Display anzusteuern. Das funktionierte soweit ohne Probleme. Als ich 
aber an einem (ganz) anderen Codeteil arbeitete funktionierte das 
Display plötzlich nicht mehr.

Ich konnte das Problem beheben, indem ich vier NOPs eingefügt habe. Füge 
ich sie im Code an beliebiger Stelle (allerdings vor die "Grenzzeile") 
funktioniert es. Füge ich sie im Code nach der Grenzzeile ein, 
funktioniert es nicht.

Dabei ist die Stelle komplett beliebig wählbar, ich habe es anhand des 
Listings ausprobiert.
1
void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data)
2
{
3
  /* Check the parameters */
4
  assert_param(IS_SPI_ALL_PERIPH(SPIx));
5

6
  /* Write in the DR register the data to be sent */
7
  SPIx->DR = Data; // <= Dies ist die magische Grenzzeile
8
}

Jetzt nutze ich das SPI einfach direkt, ohne den Zwischenaufruf der 
Funktion. Der Fehler verwundert mich aber dennoch und ich würde die 
Ursache gerne kennen.


Viele Grüße
Lasse

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.