Forum: Mikrocontroller und Digitale Elektronik STM32F103 input data register


von Fire Eagle (Gast)


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

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.