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