1. 하이퍼터미널 테스트 완료했으면 하이퍼터미널 대신 PC 코드를 작성하여 단방향 통신 테스트 하시오.
아트메가를 터미널과 통신했던 단방향직렬통신 상태로 놨두고 아래코드를 실행하면 된다.
/* 단방향 통신 main.cpp*/
#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
int main(void)
{
int a;
char szPort[15]; //문자배열 생성.
wsprintf(szPort, "COM%d" , 1); //포트 설정하는 부분
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.BaudRate = 19200; //통신 설정.
dcb.ByteSize = 8; //통신 설정.
dcb.Parity = 0; //통신 설정.
dcb.StopBits = 0; //통신 설정.
SetCommState(m_hcomm, &dcb);
OVERLAPPED osWrite;
osWrite.Offset =0;
osWrite.OffsetHigh = 0;
osWrite.hEvent = CreateEvent(NULL, TRUE , FALSE, NULL);
OVERLAPPED osRead;
osRead.Offset = 0;
osRead.OffsetHigh =0;
osRead.hEvent = CreateEvent(NULL ,TRUE ,FALSE ,NULL);
int check;
char buf[100] = "\r\n";
//출력할 내용
while(check != -1)
{
ReadFile(m_hcomm, buf, 100, NULL, &osRead);
printf("recv1:%s \n" , buf); //buf 받아서 출력
Sleep(1000);
/*WriteFile(m_hcomm, buf, strlen(buf), NULL, &osWrite);
printf("write:%s\n" , buf); //buf 받아서 출력
Sleep(1000);*/
}
CloseHandle(m_hcomm);
return 0;
system("PAUSE");
return EXIT_SUCCESS;
}
'About 프로그래밍!!! > ATmega128' 카테고리의 다른 글
[ATmega128] 양방향 직렬통신 (0) | 2010.07.20 |
---|---|
[ATmega128] 아트메가랑 PC랑 통신하기2 (0) | 2010.07.20 |
[ATmega128]단방향 직렬통신 테스트 (0) | 2010.07.20 |
[ATmega128] 복습 (0) | 2010.07.20 |
[ATmega128] PC내에서 통신하기.(양방향) (0) | 2010.07.19 |