Пример работы с SerialPort в C#

Язык программирования C#

Простой пример работы чтения поступающих данных из COM порта с использованием SerialPort на C#.

Всё довольно просто, для получения данных нам потребуется использовать событие DataReceived.

Пример:

private string stroka="";

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
        {
            this.Invoke(new EventHandler(DoUpdate));
        }
private void DoUpdate(object s,EventArgs e)
        {
            stroka = stroka + serialPort1.ReadExisting();
        }


При выполнении этого кода в переменной stroka будут копиться все данные поступающие из COM порта.

Для старта работы с ком портом необходимо запустить компонент с заданными параметрами, для окончания остановить, делается это так:

serialPort1.PortName = "COM1"; //Указываем наш порт - в данном случае COM1.
serialPort1.BaudRate = 9600; //указываем скорость.
serialPort1.DataBits = 8; 
serialPort1.Open(); //Открываем порт.

.....

serialPort1.Close(); //Закрываем порт.


Вот собственно и всё.
P.S. Перед закрытием приложения обязательно следует закрыть порт.

SerialPort

Комментарии:

EX_VIK 06 July 2010, 01:53 1 0

Дурной пример.
В самой же справке написано, что DataReceived может работать не корректно, а следовательно нежелательно его использовать.
Я с этим сталкивался. На одной КПК данные шли нормально, а на другой, совсем не срабатывал этот обработчик.
Так что используем Read!

Ответить
Roman 06 July 2010, 02:04 0 0

По правде говоря, я таким методом COM портовые сканера штриховых кодов подключал. Проблем никогда не возникало. С КПК тоже этот метод использовал правда на Symbol-ах, для подключения внешних мобильных принтеров и давно это было — тоже всё без проблем работало. Но вообще учту на будущее мало-ли, вдруг ещё придётся столкнуться с такой проблемой.

Ответить