Hallo zusammen,
ich habe die Funktion _CommAPI_OpenCOMPort() (aus https://www.autoitscript.com/wiki/CommAPI) benutzt, um den RS232-Anschluss zu öffnen und die Daten zu senden/empfangen. Mein Problem ist: Im PCs gibt es keinen physikalischen RS232-Anschluss(COM1), ich muss einen RS232-USB-Adapter benutzen. Dann bekommt der RS232-USB-Adapter einen COM10 oder COM12 (größer als COM9) zugewiesen. Dann kann ich mit _CommAPI_OpenCOMPort den COM10 nicht öffnen(die Handle = 0), aber mit _WINAPI_GetLastError() bekomme ich auch keine Error(auch = 0). Aber Ich kann mit HTerm.exe den COM10 schon öffnen und kommunizieren. Es war auch ab und zu passiert, dass ich den COM10 mit meinem Programm wieder geöffnet habe, nur nachdem ich mit HTerm.exe einmal den COM10 verbunden und dann schlossen habe.
Warum ist es so? Ich bin Anfänger für Autoit und bitte um Eure Hilfe!
#include "CommInterface.au3"
#AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w- 7
$comPort = _CommAPI_OpenCOMPort ("COM10", "19200", "0", "8", "1")
If $comPort = 0 Then
_GUICtrlEdit_AppendText($StatusEdit, "don't open comport"&@CRLF)
Else
_CommAPI_ClearCommError($comPort)
If @error Then Return SetError(@error, @ScriptLineNumber)
_CommAPI_PurgeComm($comPort)
If @error Then Return SetError(@error, @ScriptLineNumber)
Endif