-         

Ergebnis 1 bis 2 von 2

Thema: *solved* Probleme mit ReadData() von Serial.h der winapi

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.06.2005
    Beiträge
    16

    *solved* Probleme mit ReadData() von Serial.h der winapi

    Anzeige

    Hallo zusammen

    Ich möchte einen IR-Transceiver über die serielle Schnittstelle konfigurieren. Das Senden funktioniert auch bereits ohne Probleme, allerdings das Lesen bereitet mir Schwierigkeiten. Wenn man mit einem solchen Transceiver sendet und dann liest, bekommt man normalerweise das soeben gesendete Zeichen wieder zurück, weil es von der Umgebung zurückgeworfen wird (Ich nehme an, dass es so funktioniert. Ich habe mit dem Hyperterminal Versuche gemacht und herausgefunden, dass das getippte Zeichen nur dann im Terminal erscheint, wenn das Potentiometer auf der Senderplatine "offen" ist). Ich habe nun eine Konsolenanwendung geschrieben, die das Gleiche wie das Hyperterminal tun sollte. Das Senden funktioniert wie gesagt, aber das zurückgelesene Zeichen ist absoluter Schwachsinn. Es erscheinen verschiedene Sonderzeichen und manchmal auch gar nichts...
    Code:
    #include <iostream>
    #include "Serial.h"
    #include <iostream>
    
    
    using namespace std;
    
    
    int main()
    {
       
       
        CSerial Serial;
    
        unsigned char a;
        char* lpBuffer = new char[10];
       
        Serial.Open(2,2400,8,1,0);
       
        while (true)
        {
           cout << "Eingabe ?" << endl;
            cin >> a;
       
            Serial.WriteCommByte(a);
           
           
            int nBytesRead = Serial.ReadData(lpBuffer,1);
            cout << lpBuffer[1] << endl;
            delete []lpBuffer;
           
        }
       
       Serial.~CSerial();
       return 0;
    }
    Ich verwende Serial.h der standard winapi. Hat irgendjemand eine Erklärung oder noch besser eine Lösung für dieses Problem?

    gruss
    Illuminon

    ps: Ist das das richtige Forum für diese Frage? Ich finde das Roboternetz super, aber es ist verwirrend gross

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    26.06.2005
    Beiträge
    16
    Ich habe das Problem gefunden...

    cout << lpBuffer[1] << endl;

    sollte

    cout << lpBuffer[0] << endl;

    sein. Was für ein idiotischer Fehler...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •