2012-03-03 4 views
0

Я хочу передать данные между Atmega168 через кабель RS232 на мой компьютер для редактирования! Но Atmega слишком быстро обрабатывает событие SerialPort.DataReceived. Есть ли предложение или инструкция, как ускорить serialport или использовать неуправляемый serialport?SerialPort Performance

Кроме того, существующий код, который не работает он просто добавлять записи в список (строк)

Private Sub Me_DataReceived() Handles Me.DataReceived 
    DataLines.Add(Me.ReadLine().Trim) 
End Sub 
+0

Какое подтверждение вы используете? Xon/Xoff, RTS/CTS или нет? –

+0

нет ... я должен изменить рукопожатие ??? – ribben

+0

Если вы ничего не используете, отправляющее устройство продолжит сбрасывать данные в вашу программу, вызывая dataloss. Если вы используете handshaking, вам нужно будет настроить его на обоих устройствах, плюс, если вы используете RTS/CTS, вам также понадобится изменить свой последовательный кабель. Единственный другой вариант - замедлить скорость передачи данных до такой степени, что вы больше не будете отбрасывать данные. –

ответ

0

Я имел эту проблему раз и решить ее, добавив небольшой фрагмент кода C++, который считывает данные из последовательный порт для моего проекта, а затем добавление ссылки на эту библиотеку в моем проекте C#. Код C++ работал более чем в 10 раз быстрее. Какую скорость передачи данных вы используете?

Смежные вопросы