stm32 spi-Register

Gast #3748031
Lesenswert?
• ▲
▼
ich quäle mich mit stm.

ich habe einen enc38j60 am stm32f429-board.

Schreiben ins DR-Register funktioniert mit:
  spiENC->DR = value;

Nach meinem Verständnis müsste ich jetzt das SR abfragen bis TXE==1 ist:
while (!(spiENC->SR & SPI_I2S_FLAG_TXE));//not ok

das klappt jedoch nicht. Anscheinend korrekte Ergebnisse bekomme ich nur 
mit
  while (SPI_I2S_GetFlagStatus(spiENC, SPI_I2S_FLAG_BSY));//ok

Direkte ABfrage bsy klappt auch nicht:
  //  while ((spiENC->SR & SPI_I2S_FLAG_BSY));//not ok

auch
// while (SPI_I2S_GetFlagStatus(spiENC, SPI_I2S_FLAG_TXE) == RESET);
liefert ein anderes Ergebnis.

Kann mir jemand die STM-Systematik erklären, warum ich das SR-Register 
nicht direkt abfragen kann, sondern die merkwürdige Funktion 
SPI_I2S_GetFlagStatus benutzen muss?
Gast #3748384
Lesenswert?
• ▲
▼
Jim Meba schrieb:
> Die Periperial Library wird als Source code ausgeliefert: Use the
> source, Luke!

danke für den Hinweis.

  SPI_I2S_SendData(spiENC,value);
--- funktion aus der stm-lib ---

bringt kein brauchbares Ergebnis.

Die Erklärung im manual -Seite 872- zur Unterscheidung von bsy und txe 
bzgl. Hardware- bzw. Softwarereset  hilft auch nicht weiter.
Gast #3748460
Lesenswert?
• ▲
▼
Grundschüler schrieb:
> Kann mir jemand die STM-Systematik erklären, warum ich das SR-Register
> nicht direkt abfragen kann, sondern die merkwürdige Funktion
> SPI_I2S_GetFlagStatus benutzen muss?

Entweder benutzt du die lib und liest die Anleitung dazu oder du 
schreibst dir deinen SPI Treiber selber.

Bei Benutzung der Lib ist mein Verdacht, dass du keinen direkten Zugriff 
auf die Register hast, sondern die Funktionen benutzen musst.

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.