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;
)
전 직렬 포트적인 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;
)