일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- matplot
- Python
- 딥러닝
- MX Component
- sql developer
- 오라클
- MSSQL
- scrapy
- 크롤링
- 장고
- 파이썬
- 윈도우10
- PYTHON MSSQL
- Visual Studio Code
- tensorflow
- oracle
- Serial
- MEAN Stack
- 자본주의
- 티스토리 초대장
- rs422
- django
- windows10
- rs485
- pymssql
- MSSQL PYTHON
- M2M
- vscode
- c#
- 텐서플로우
Archives
- Today
- Total
안까먹을라고 쓰는 블로그
C#_Serial통신 본문
반응형
SerialPort 컨트롤을 사용해서 시리얼 통신을 구현할 수 있습니다.
Serial통신을 하려면 PortName, BaudRate, DataBits, Parity, StopBits를 설정을 해줘야 합니다.
SeiralPort 인스턴트 생성
using System;
using System.IO.Ports;
using System.Threading;
SerialPort Serial = new SerialPort();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
private void Serial_Intitial()
{
Serial_Open();
// Data수신 Event등록
Serial.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(Serial_DataReceived);
}
private void Serial_Open()
{
if (Serial.IsOpen) Serial.Close();
Serial.PortName = "Com1";
Serial.BaudRate = 9600;
Serial.DataBits = 8;
Serial.StopBits = System.IO.Ports.StopBits.One;
Serial.Parity = System.IO.Ports.Parity.None;
Serial.Open();
}
private delegate void Serial_Delegate(string Data);
void Serial_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
int Len;
string sTemp = "";
string CardNo = "";
byte[] rcvBuff = new byte[1024];
try
{
// SerialData byte[]로 Read
Len = Serial.Read(rcvBuff, 0, 1024);
// SerialData 짤려서 수신되는 경우관련 += 처리
// byte[] -> string Converter
sTemp += Encoding.Default.GetString(rcvBuff, 0, Len);
if (Len >= 11)
{
// STX/ETX 체크
if ((sTemp[0] == 0x02) && (sTemp[9] == 0x03))
{
CardNo = sTemp.Substring(2, 7);
// Control등에 표시될 때 CrossThread관련 Invoke처리
this.Invoke(new Serial_Delegate(SerialData_Parsing), CardNo.ToString());
sTemp = "";
}
else
{
sTemp = "";
}
}
}
catch (Exception Ex)
{
sTemp = "";
MessageBox.Show(Ex.ToString());
}
}
private void SerialData_Parsing(string sData)
{
}
|
cs |
반응형
'Language > C#' 카테고리의 다른 글
[C#] 제네릭[Generic] (0) | 2012.09.04 |
---|---|
[C#] 시간체크(Stopwatch) (0) | 2012.09.04 |
C#_정규식 (0) | 2012.09.01 |
C#_[Dllimport] (0) | 2012.09.01 |
C#_Thread (0) | 2012.09.01 |
Comments