개발 C 를 직렬 포트 인터페이스

R

RFdata

Guest
안녕하세요,
전 직렬 포트적인 C 를 사용하면 쉽고 간단하게 모든 수단을 동원하여 옛 웨보 DEV 컴파일러를 사용하여 인터페이스에 외항 및 inport, 이제
Windows 용 아주 달라요려고 해요하지만 시리얼 중에 데이터를 넣어 sussefull, 문제는 제가
RX 핀에서 데이터를 읽을 수 없다는 것입니다.
그것뿐만 아니라 데이터의 출력은 수신에는 시리얼 핀에 RX에 텍사스에서 루프를 다시이기 때문에 그 가치를 어디에?
이 코드를
사용하여
어떤 도움을 환영합니다
탱크# 포함 <conio.h>
# 포함 <stdio.h>
# 포함 <windows.h>
# 포함 <bios.h>

/ / 흐름 제어 플래그

FC_DTRDSR 0x01 정의 #
FC_RTSCTS 0x02 정의 #
FC_XONXOFF 0x04 정의 #표준을 사용하여 네임 스페이스;
/ / 변수의 COM 포트
중 <strong와 class="highlight"> </ 강력한 사용>
BOOL bPortReady;
DCB DCB;
COMMTIMEOUTS COMMTIMEOUTS;
BOOL bWriteRC;
BOOL bReadRC;
DWORD를 iBytesWritten;
DWORD를 iBytesRead;

오스 SerialInit (숯불 * ComPortName, int baudrate)
(
오스 hComm;

hComm =는 CreateFile (ComPortName,
GENERIC_READ | GENERIC_WRITE,
0, / / 단독 액세스
이 NULL, / / 보안
OPEN_EXISTING,
0, / / 아뇨,
전 중복 / O를
이 NULL); / / null로 템플릿

bPortReady = SetupComm (, 1, 128); / hComm / 버퍼 크기 설정bPortReady = GetCommState (hComm & DCB);
dcb.BaudRate = baudrate;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
/ / dcb.Parity = EVENPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.fAbortOnError = TRUE로;

/ /
XON 세트 / XOFF
dcb.fOutX = FALSE로;위한 / / XON / XOFF를 전송
dcb.fInX = FALSE로;위한 / / XON / XOFF를받을
/ / RTSCTS 설정
dcb.fOutxCtsFlow = FALSE로; / CTS 흐름에 / 차례 컨트롤
dcb.fRtsControl RTS_CONTROL_HANDSHAKE =; / /
/ / DSRDTR 설정
dcb.fOutxDsrFlow = FALSE로; / DSR은 흐름에 / 차례 컨트롤
dcb.fDtrControl = DTR_CONTROL_ENABLE; / /
dcb.fDtrControl = DTR_CONTROL_DISABLE; / /
dcb.fDtrControl DTR_CONTROL_HANDSHAKE =; / /

bPortReady = SetCommState (hComm & DCB);

옵션 / / 통신 시간 초과입니다

bPortReady = GetCommTimeouts (hComm & COMMTIMEOUTS);

CommTimeouts.ReadIntervalTimeout = 5;
= 5 CommTimeouts.ReadTotalTimeoutConstant;
CommTimeouts.ReadTotalTimeoutMultiplier = 1;
= 5 CommTimeouts.WriteTotalTimeoutConstant;
CommTimeouts.WriteTotalTimeoutMultiplier = 1;

bPortReady = SetCommTimeouts (hComm & COMMTIMEOUTS);

반환 hComm;
)숯불 SerialGetc (오스 * hComm)
(
숯불 rxchar;
BOOL bReadRC;
정적 DWORD를 iBytesRead;

bReadRC = ReadFile (* hComm, & rxchar, 1, & iBytesRead,이 NULL);

반환 rxchar;
)

무효 SerialPutc (오스 * hComm, 숯불 txchar)
(
BOOL bWriteRC;
DWORD를 iBytesWritten 정적;

bWriteRC = WriteFile (* hComm, & txchar, 1, & iBytesWritten,이 NULL);

반환;
)

주요 int ()
(
내 = SerialInit
오스 ( "COM1", 9600);

숯불 편지;
printf ( "테스트 \ n");

*의 PTR;
*의 PTR = 제;(;;)
(

SerialPutc (의 PTR, '한');
printf ( "% c"로, SerialGetc (의 PTR));
getch ();
)

반환 0;
)

 
MSVC 과 devC 그것도 마찬가지다.그들이 모두 창문이 시스템 호출을 사용할 수있습니다.

 
난 당신이 문서를 확인 할 것 :
http://www.codeproject.com/KB/system/serial.aspx

행운을 빕니다.

 
안녕,

이것 좀보세요.
http://abdelrahman101.spaces.live.com/

나는 그것의 유용 바란다.

행운을 빕니다.

 

Welcome to EDABoard.com

Sponsor

Back
Top