RS232 Daten senden vom uc an PC

OP #525904
Lesenswert?
• ▲
▼
Hallo zusammen,

ich bin an einer Stelle wo ich nicht mehr weiter weiß.
Ich benutze den AT89C51ED2 und habe mit C ein kleines Programm 
geschrieben
Mit dem Programm kann ich Daten erfassen die dann auf einem kleinen LCD 
Display auf dem Board angezeigt werden.
Nun möchte ich die Daten über eine RS232 Schnittstelle auf meinen PC 
senden.
Ich habe die Daten auf dem uc in einen String umgewandelt (sprintf).
Hab mich auch über UART informiert, das ich darüber die Daten senden 
muss, und sie dann über ein Terminal Programm empfangen kann.
Aber wie mach ich das?
Kann mir jemand bitte helfen?

Danke im Voraus
#525958
Lesenswert?
• ▲
▼
Hallo Björn,
  wenn du den Text schon als String vorliegen hast, dann kannst du doch 
einfach ein Zeichen nach dem anderen über die serielle Schnittstelle 
übertragen. Das sollte so Funktionieren:
1
char *pointer=var_mystring;
2

3
for(;pointer;pointer++)
4
{
5
send_char(*pointer);
6
}

Gruß,
  SIGINT
OP #526762
Lesenswert?
• ▲
▼
Hallo Sigint,

danke für deine Antwort ;-)
Ich bin leider nicht der Profi darin.
Könntest du mir vielleicht einen Tipp geben wo ich die Zeilen einfügen 
soll?
Hier ist mein kleines Programm.
P.S. Ich habe einen kompletten Text auf dem LCD Display,
wird der dann im ganzen übertragen?

Gruß,Björn

const float LSB = 0.01953;  // 5V / 256 Schritte = 0.01953

void main (void)
{
  unsigned char AIn0Wert;   //AD0-Wert als 8-Bit-Variable
  unsigned char buf [16];  //für LCD-Anzeig
  float  UIn0Wert;  //für Skalierung des AD0-Werts auf 0 bis 5V
  initlcd ();    //LCD-Display initialisieren
  testlcd ();    //LCD-Display testen und löschen

  while (1)
  {
    AIn0Wert = ain (0);//Analogwert von Poti an Kanal 0 einlesen
    LEDPort = AIn0Wert;//an LEDs an P2 ausgeben
    aout (AIn0Wert);//und an den Analogausgang

    UIn0Wert = AIn0Wert * LSB;//Skalierung auf 0 bis 5V

    sprintf (buf,"AD0 = %1.3f Volt",UIn0Wert);

// Floatvariable formatieren, als 4-stellige Kommazahl in String 
verwandeln, in buf kopieren
//  %Ausgabeformat folgt, 1 Vor- 3 Nachkommastellen, f Floatvariable, 
auszugebende Variable

    printlcd (buf,1);

   }  //  Ende Endlosschleife mit while

}

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.