09-05-2020, Saat: 12:44
Merhaba. Serial porttan veri alıp gönderiyorum. Olursa işlem yaparken bağlantı koparsa closehandle yaptığım halde genede port kullanılıyor gözüküyor. Port kullanılıyor gözüktüğü için tekrar açma işlemi yapamıyorum. Ancak usb söküp takarsam o zaman ancak kapatıyor. Nerede hata yapıyorum ? Yardımcı olursanız sevinirim.
Port açma işlemini şu şekilde yapıyorum.
Set işlemini şu şekilde.
Close işleminide şu şekilde.
Port açma işlemini şu şekilde yapıyorum.
UsbHandle := CreateFile(PWideChar(DevicePath), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Set işlemini şu şekilde.
if not SetupComm(UsbHandle, AdjustmentData.RxBufferSize, AdjustmentData.TxBufferSize) then Exit; DCB.BaudRate := AdjustmentData.Baud; DCB.Parity := 0; DCB.ByteSize := 8; DCB.StopBits := 0; DCB.EvtChar := #10; if not SetCommState(UsbHandle, DCB) then Exit; if not SetCommMask(UsbHandle, EV_RXCHAR or EV_ERR) then Exit; with CommTimeouts do begin ReadIntervalTimeout := AdjustmentData.ReadIntervalTimeout; ReadTotalTimeoutMultiplier := AdjustmentData.ReadTotalTimeoutMultiplier; ReadTotalTimeoutConstant := AdjustmentData.ReadTotalTimeoutConstant; WriteTotalTimeoutMultiplier := AdjustmentData.WriteTotalTimeoutMultiplier; WriteTotalTimeoutConstant := AdjustmentData.WriteTotalTimeoutConstant; end; if not SetCommTimeouts(UsbHandle, CommTimeouts) then Exit;
Close işleminide şu şekilde.
PurgeComm(UsbHandle, PURGE_TXABORT or PURGE_RXABORT or PURGE_TXCLEAR or PURGE_RXCLEAR); CloseHandle(UsbHandle);