Guten Tag Community,
ich sitze seit einigen Studen daran, zwei UART's am PIC18F46J50 zum
laufen zu bringen.
Das Schreiben von Daten ist dabei kein Problem. Allerdings schaffe ich
es nicht, Daten zu lesen.
UART2 geht über Ft232 an PC.
Der andere ist quasi frei.
Da ich problemlos Zeichen senden kann, kann die Takterzeugung nicht
falsch konfiguriert sein.
Desweiteren ist CREN (Receive Enable) gesetzt.
Ich habe die Datenübertragung vom PC auf das Board mit dem Oszilloskop
geprüft und die Verbindungen durchgeklingelt. Das kommt alles so an, wie
es soll.
Zudem sind die Pin-Zuordnungen (PPS) auch durchgeführt worden und
mittlerweile auch so 20mal kontrolliert.
Die innere While-Schleife bleibt hängen (RC2IF wird nie gesetzt).
1 | while(1)
|
2 | {
|
3 | while(! (PIR3bits.RC2IF))
|
4 | ;
|
5 | _putch(RCREG2, EUSART_2);
|
6 | }
|
Ich halte es am wahrscheinlichsten, dass dies durch eine
Fehlkonfiguration des PPS kommt. Aber das habe ich mittlerweile einige
Male kontrolliert und kann es ausschließen.
Am einfachsten wäre es, wenn jemand einen funktionierenden Codeabschnitt
hat. Dann kann ich vergleichen und den Fehler finden. Aber ich bin für
weiterhelfende Ideen auch ziemlich dankbar.