www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit UART Schnittstelle beim empfangen


Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

seit einiger Zeit kämpfe ich mit der UART Schnittstelle meines 
Controllers. Leider bisher ohne Erfolg. Das senden von Zeichen vom 
Controller aus klappt ohne Probleme. Das Empfangen hingegen klappt gar 
nicht. Der Controller empfängt nicht die richtige Anzahl und auch nicht 
die richtigen Zeichen.

Beispiel:
PC gesendet: „12 34 56 78 91 23 45 67 89 12 34 56 78 9 „
Controller empfangen : „1234567FF89123456789“

Nun habe Testweise eine Brücke zwischen RX und TX bei meiner UART 
Schnitstelle gemacht. Aber auch hier erhalte ich das gleiche Ergebnis.

Kann es sein dass meine UART Schnittstelle defekt ist. Das senden klappt 
ohne Probleme!!

Vielen Dank schonmal für die Antworten.

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schätze mal, du verpasst Zeichen, weil deine UART-Auswertung zu 
lange dauert.
Ohne Code(-ausschnitt), Controller-Typ und andere Infos wirst du wohl 
keine bessere Antwort erhalten.

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

danke schonmal für die Antwort. Ich verwende den Sc13 von Beck.

hiermal ein Beispiel Code

Vielen Dank für die Antworten


Task2(void){
int j=0;

while(1){
for(j=0;j!=18;j++){
if (fossil_putbyte (FOSSIL_EXT, (0x00FF & testBuffer[j]))==0){
j=j-1;
RTX_Sleep_Fine (2);
}
}
}

RTX_Sleep_Time(500);
}



Task1(void){

fossil_setbaud (FOSSIL_EXT,19200, FOSSIL_PARITY_EVEN,8,1);
fossil_set_flowcontrol (FOSSIL_COM,FOSSIL_FLOWCTRL_OFF);

while(1) {

Tes2Buffer[anzahl] =0x00FF & fossil_getbyte_wait(FOSSIL_EXT);
anzahl = anzahl+1;

if(anzahl>=18){
printf("\n Anzahl %i ",anzahl);
for(i=0;i!=anzahl;i++){
printf("%X",Tes2Buffer[i]);
}
anzahl=0;
}
}

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nochmal:
Wenn du testen möchtest, ob es an der Geschwindigkeit der Auswertung 
liegt, könntest du einmal die BAUD-Rate auf 9600 oder gar 4800 
runtersetzen.

Mit dem SC13 (oder mit Beck allgemein) kenne ich mich nicht aus, daher 
kann ich Dir ansonsten nicht mehr weiterhelfen.

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Produktinfo für Hilfsbereite:

http://www.beck-ipc.com/de/products/sc1x/sc13.asp

Ich habe im Moment leider nicht die Nerven, um mich damit 
auseinanderzusetzen ;)

Gruß,
Magnetus

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.