앉아있는 프래그래머

C# RS232-시리얼통신 코드 본문

프로그래밍/C#,ALT-8RSD-12V - RS232 시리얼 통신

C# RS232-시리얼통신 코드

맛있는 단무지! 2018. 7. 18. 15:23

RS232-시리얼 통신 과정

포트 COM4와 9600bps로 연결하고 인코딩,패리티 검사는 사용 안함, 데이터비트는 8개로 정지비트는 1개 데이터는 SerialPort_DateReceived 메서드를 받아온다.


데이터 비트 - 전송되는 실제 데이터 비트의 측정값, 컴퓨터가 정보 패킷을 보낼 때 실제 데이터의 양은 전체 8 비트가 되지 않음. 데이터 패킷의 표준 값은 5, 7, 8비트


정지 비트    - 단일 패킷에 대한 통신의 종료를 알리는 데 사용됩니다. 일반적인 값은 1, 1.5, 2 비트


패리티 검사 - 시리얼 통신에서 에러를 체크하는 데 사용.  짝수, 홀수, 마크, 스페이스 패리티의 네 가지 형태가 존재. "패리티 없음"도 사용 가능


//=======================================================================================================

using.System.IO.Ports;


class serialport{



        SerialPort port = new SerialPort();

        int readCnt = 0;
        byte recvByte = 0;
        byte[] recvBuf = new byte[1024];

//=======================================================================================================

      private void button_Click(object sender, EventArgs e)
        {  


      if(port.IsOpen == false){

         port = new SerialPort("COM4", 9600);
                port.Encoding = Encoding.Default;
                port.Parity = Parity.None;
                port.DataBits = 8;
                port.StopBits = StopBits.One;
                port.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
                port.Open();

        }else{

                port.Close();

        }


//=======================================================================================================

       private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {

            if (port.BytesToRead >= 0)
            {
                readCnt = port.Read(recvBuf, 0, 1024);
                recvByte = recvBuf[readCnt - 1];

                listBox1.Items.Add(readCnt.ToString());
            }

        }

}

Comments