< 콘솔과 하이퍼 터미널 간의 단방향 통신 > - C++ 작성
※Virture Serial Port Driver 프로그램을 사용하여 크로스로 연결된 2개의 가상 포트를 생성하였다.
콘솔은 2번 포트, 하이퍼 터미널은 5번 포트이다.
#include<stdio.h>
#include<windows.h>
int main(void)
{
char szPort[15]; //포트명을 저장할 변수
wsprintf(szPort, "COM%d", 2); //2번 포트로 통신
//Comm device를 File Open과 같은 방법으로 연결
HANDLE m_hComm=NULL;
m_hComm=CreateFile(szPort,
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(m_hComm==INVALID_HANDLE_VALUE)
{
printf("(!)Failed to create a Comm Device file.");
return FALSE;
}
DCB dcb;
dcb.DCBlength=sizeof(DCB);
GetCommState(m_hComm, &dcb); //DCB초기값
dcb.BaudRate=9600; //전송속도
dcb.ByteSize=8; //테이터비트 4-8
dcb.Parity=0; //Parity 0-4=no, odd, even, mark, space
dcb.StopBits=0; //Stopbit 0,1,1=1,1.5,2
setCommState(m_Comm, &dcb); //DCB변경
OVERLAPPED osWrite;
osWrite.Offset=0;
osWrite.OffsetHigh=0;
osWrite.hEvent=CreateEvent(NULL, TRUE, FALSE, NULL);
char buf[100]="Hello world\r\n";
while(1)
{
printf("send:%s", buf);
WriteFile(m_hComm, buf, strlen(buf), NULL, &osWrite);
sleep(1000);
}
CloseHandle(m_hComm);
return 0;
}
'IT_etc > dk-128 (ATmega128)' 카테고리의 다른 글
[스크랩] 8-1. avr 직렬 단방향 통신 (0) | 2009.08.25 |
---|---|
[스크랩] 7-2. 윈도우 기반 직렬 양방향 통신 (0) | 2009.08.25 |
[스크랩] 6. 외부 EEPROM (0) | 2009.08.25 |
[dk-128] 내부 EEPROM 사용하기 (타이머 카운터 사용) (0) | 2009.07.06 |
타이머 카운터 _ 1초마다 LED를 깜빡 거리는 프로그램 구현 (0) | 2009.06.26 |