Forum: Mikrocontroller und Digitale Elektronik Serielle Schnittstelle


von Curby (Gast)


Lesenswert?

Moin,

ich hatte die ganze Sache schonmalm programmiert, jedoch habe ich das 
programm irgendwie verloren.

Ich möchte mit CreateFile eine Com Verbindung realisieren um mit einem 
Atmega zu kommuniezieren. Damals funktionierte dies, nun kommt die 
Fehlermeldung, dass der SerialPort nicht existiert.

Was mache ich für einen dummen Fehler? Wenn ich CREATE_ALWAYS verwende, 
legt das Ding tatsächlich eine Datei an und schreibt da rein.

Hier der Code
1
    LPCWSTR com;
2
    com = (LPCWSTR)"COM6";
3
4
    hSerial = CreateFile(com,
5
    GENERIC_READ | GENERIC_WRITE,
6
    0,
7
    0,
8
    OPEN_EXISTING,
9
    FILE_ATTRIBUTE_NORMAL,
10
    0);  
11
12
    //Versuchen mit Com zu verbinden
13
    if(hSerial == INVALID_HANDLE_VALUE){
14
              if(GetLastError() == ERROR_FILE_NOT_FOUND){
15
            cout << "ERROR: serial port does not exist\n";
16
          }else{
17
            cout << "ERROR: invalid handle";
18
          }
19
      CloseHandle(hSerial);
20
    }

mfg
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Curby schrieb:
> com = (LPCWSTR)"COM6";
Schreib mal "COM6:"
von Curby (Gast)


Lesenswert?

OK dann sagt der Invalid Handle.
von Curby (Gast)


Lesenswert?

Gut, wen ich
L"COM6"
verwende funktioniert es. Wie kann ich dieses Com dynamisch machen - 
sprich den zu verwendenden Com aus einem String laden?
von Peter II (Gast)


Lesenswert?

Curby schrieb:
> Gut, wen ich
> L"COM6"
> verwende funktioniert es. Wie kann ich dieses Com dynamisch machen -
> sprich den zu verwendenden Com aus einem String laden?
am besten nicht unicode verwenden (projekteinstellungen prüfen)

oder wenn es unicode sein soll, dann musst du den eingelesen Text erst 
in Unicode wandeln.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.