Gast
#512700
Hallo an alle! Ich habe ein Problem: Weiß jemand von euch, wie ich einen String von der seriellen Schnittstelle auslesen kann, also mit SBUF und so? Danke schonmal! lg Hans
|
Anzeige
|
String von Serieller Schnittstelle auslesen
Gast
#512700
Hallo an alle! Ich habe ein Problem: Weiß jemand von euch, wie ich einen String von der seriellen Schnittstelle auslesen kann, also mit SBUF und so? Danke schonmal! lg Hans SBUF, ist das basecom? hab ich noch nie gehört, general kannst du aber immer nur ein Byte lesen (gegebenenfalls auch mehrere Bytes aus einem Buffer). Wenn du einen String sendest solltest du auch irgendwas zum Abschluss mitsenden (in der Regel ist das bei Strings 0x00), dann musst du den string einfach nur solange in einen Buffer schreiben bis du beim 0x00 Byte angekommen bist. Dann hast du im Buffer dein String. Wenn es Basecom ist würde ich mich nicht wundern wenn da schon irgend eine Funktion dabei ist die genau so was macht.
Gast
#512734
> ... mit SBUF und so
Nun weiß ich das du von einem 8x51 Derivat sprichst. Gib dir mal nen
bischen Mühe bei der Formulierung deiner Frage ansonsten bekommst du
keine Antwort.
Gast
#512745
Tschuldigung! Also ich hab einen AD89C51ED2. Mit SBUF=... kann ich ein Byte aus der Schnittstelle lesen, das weiß ich ja. Aber wie kann ich die Bytes dann wieder zu einem String zusammenbasteln?
Gast
#512766
Interrupt Serielle Schnittstelle - Byte auslesen - nacheinander in den Speicher packen.
Gast
#512776
So, ich glaube so dürfte es funktionieren:
for(y=0; y<20; y++)
{
charReceive[y]=SBUF;
strcat(stringReceive, charReceive);
}
Danke für die Antworten.
lg Hans
Gast
#512805
Üblicherweise hast du eine Funktion um ein Zeichen zu Empfangen (getchar), vorrausgesetzt die UART ist initialisiert.
Achte darauf das du RI abfragst (polling mode). Ansonsten kannst du das auch in einer Interrupt Routine erledigen. Antwort schreiben |
Anzeige
|