C# 에서 시리얼 포트 사용하기도 간단합니다.

기존의 blocked나 non-blocked를 고민할 필요도 없고,

DCB써서 복잡하게 정희할 필요도 없습니다.

다음과 같이 하면 간단합니다.

<선언하기>

using System.IO.Ports;

:

SerialPort SP = new SerialPort();
:


public Form1()
{
InitializeComponent();

CheckForIllegalCrossThreadCalls = false;

SP.DataReceived += new SerialDataReceivedEventHandler(SP_DataReceived);
SP.ReadTimeout = 200;
SP.BaudRate = 115200;
SP.PortName = "COM3";
SP.RtsEnable = true;
SP.Open();
SP.DiscardInBuffer();
SP.DiscardOutBuffer();

}

private void SP_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
MsgBox.Text = string.Format("{0}", Convert.ToChar(SP.ReadByte()));
}

private void button1_Click(object sender, EventArgs e)
{
SP.Write("1");

}

위와 같이 하면 보내고 받기가 됩니다.

주의할 사항은 보낼 때, ASCII 형식으로 보내려면 Conver.ToChar 를 꼭 해줘야합니다.

Posted by 벅스바니
,