Hallo an alle! Ich steige gerade weider ins µC Programmieren ein, ich hab das mal vor ein paar Jahren in der HTL gemacht, aber da hat sich anscheinend einiges verändert... Nach schon langem Herumprobieren mit ADC&co will ich jetzt die Ergebnisse mithilfe einer USART-Schnittstelle auf meinen PC bringen. die entsprechende Hilfe ist von dieser Seite gekommen: http://www.micromouseonline.com/2009/12/31/stm32-usart-basics/#axzz1rSw8wahp nur tut sich auf dem Pin PA9(auf dem eigentlich der USART1 TX geschaltet ist) nichts (ich hab ein analoges Oszi druafhängen) meine einzigen konfigurationen am Code war, dass ich die Konstanten durch Zahlen ersetzt habe. das ganze sieht jetzt so aus: void init_RS485 (void){ RCC->APB2ENR |= (1<<2); // enable clock for GPIOA GPIOA->CRH |= (0x0BUL << 4); // Tx (PA9) alt. out push-pull GPIOA->CRH |= (0x04UL << 8); // Rx (PA10) in floating RCC->APB2ENR |= (1<<14); // enable clock for USART1 USART1->BRR = 64000000L/115200L; // set baudrate USART1->CR1 |= (1<<3); // TX enable USART1->CR1 |= (1<<13); // USART enable } int SendChar (int ch) { while ((USART1->SR & (1<<7)!=(1<<7))); //das 7. Bit ist TXE USART1->DR = (ch & 0xFF); return (ch); } Wenn ich jetzt in einer Endlosschleife ein Zeichen senden lasse tut sich auf PA9 absolut GAR NICHTS. Hab auch schon gesucht ob jemand anderes dieses Problem hat, finde aber (fast) nur Beiträge, bei denen falsche Daten ankommen. Danke für eure Hilfe, Dominik
Schalt mal den "Alternate function I/O clock" an. Ja - so ist das manchmal, wenn man copy paste macht ohne den Kopf einzuschalten. Gruß Oliver
da hab' ich wohl den Tag vor dem Abend gelobt, es funktioniert noch immer nicht. Habt noch andere Ideen wieso da Funkstille herrscht?
Dominik schrieb: > while ((USART1->SR & (1<<7)!=(1<<7))); Du kannst diese Abfrage ganz problemlos so abkürzen: while (USART1->SR & (1<<7)); > finde aber (fast) nur Beiträge, bei denen falsche Daten ankommen. Das wäre ja schon mal was. Probier also einfach mal, irgendwas auszugeben... BTW: Warum das Rad immer neu erfinden? Ich habe letzten Freitag einfach den Beispielcode von ST genommen und nach knapp einer halben Stunde Zeichen versendet und empfangen. Und wenn du danach genau wissen willst, welche Bits da verbogen werden, dann siehst du dir den Code einfach mal an...
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.