STM32F103 input data register

Gast #2978298
Lesenswert?
• ▲
▼
Hallo!

Ich habe folgendes Problem mit dem STM32F103: ein CycloneII generiert 
testweise ein 1Hz Signal (soll später ein "read data"-Signal zur 
Kommuniktion werden; will kein "kompliziertes" SPI implementieren).
Bei jeder High-Low Flanke von "data ready" will ich zum Test auf dem MC 
ein Zeichen über uart ausgeben.
"data ready" ist auf PB0
Mit dem externen Interrupt (EXTI + ISR) klappt das einwandfrei, wenn ich 
aber folgendes versuche:

while(1){
    while(GPIOB->IDR & (1<<0)); //wait while PB0 high

    uart_send('-');

    while(!(GPIOB->IDR & (1<<0)));//wait while PB0 low
}

bekomme ich nur sporadisch eine Ausgabe über Uart.

GPIOB->IDR ist 32 bit wobei die unteren 16 bit PB0-PB15 sind, die oberen 
16 sind reserved "0x0000".
Clock für Port B ist auch an (72Mhz).

Muss ich da vielleicht noch irgendetwas casten bzw. könnt ihr euch 
erklären, warum das nicht funktioniert?

Auf einem ATmega328 funktioniert es mit polling jedenfalls, ich bin aber 
neu auf dem STM32 und kenne ihn noch nicht so genau.

Ich hoffe, jemand kann mir erklären, was da seltsames passiert.

LG

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.