Последовательный порт не может быть использован сразу после открытия
У меня проблема с последовательным портом:
Мой код:
Dim readData() As Byte Dim port As New SerialPort("COM1", 38400, Parity.None, 8) port.StopBits = StopBits.One port.Handshake = Handshake.None port.ReadTimeout = 1000 port.Open() port.Read(readData, 0, 8) If readData.Length > 0 Then For Each b As Byte In readData Me.TextBox1.Text &= b.ToString("X2") Next End If port.Close()
попытка прочитать порт сразу после его открытия дает мне следующее исключение:
Системы.ИО.Исключение IOException
Операция ввода-вывода была прервана либо из-за выхода потока, либо из-за запроса приложения
Но если я положу нить сна между открытой и прочитанной строками, проблема исчезнет:
port.Open() System.Threading.Thread.Sleep(20) port.Read(readData, 0, 8)
Кто-нибудь знает, почему такое поведение?
Правильно ли использовать потоковый сон или есть лучшее решение?