Dev C Serial Port grænseflade

R

RFdata

Guest
Hej, Jeg forsøger at interface seriel port ved brug DEV c , når jeg brugte en gammel Dos compiler alt var nemt blot bruge outport og inport, nu til Windows
er det meget forskelligt, men jeg sussefull lægge data om serielle ud, problemet er, at jeg ikke kan læse data fra RX benet.
Det eneste modtager data A, som er det output, men der er ingen sløjfe tilbage fra TX til RX på den serielle knappenåle, så hvis det får denne værdi?
Jeg bruger denne kode

Enhver hjælp er velkommen
Tanke#
include <conio.h>
#
include <stdio.h>
#
include <windows.h>
#
include <bios.h>

/ / Strømningsreguleringen flag

# define FC_DTRDSR 0x01
# define FC_RTSCTS 0x02
# define FC_XONXOFF 0x04ved hjælp af namespace std;
/ / Variabler bruges med dk <strong class="highlight"> havn </ strong>
Bool bPortReady;
DCB dcb;
COMMTIMEOUTS CommTimeouts;
Bool bWriteRC;
Bool bReadRC;
DWORD iBytesWritten;
DWORD iBytesRead;

Håndtere SerialInit (char * ComPortName, int BaudRate)
(
Håndtere hComm;

hComm = CreateFile (ComPortName,
GENERIC_READ | GENERIC_WRITE,
0, / / eksklusiv adgang
NULL, / / ingen sikkerhed
OPEN_EXISTING,
0, / / ingen overlappede I / O
NULL); / / null skabelon

bPortReady = SetupComm (hComm, 1, 128); / / sæt buffer størrelserbPortReady = GetCommState (hComm, & dcb);
dcb.BaudRate = BaudRate;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
/ / dcb.Parity = EVENPARITY;
dcb.StopBits = ONESTOPBIT;
dcb.fAbortOnError = TRUE;

/ / Sæt XON / XOFF
dcb.fOutX = FALSE; / / XON / XOFF off for fremsender
dcb.fInX = FALSE; / / XON / XOFF off til modtager
/ / Sæt RTSCTS
dcb.fOutxCtsFlow = FALSE; / / tænde CTS flow kontrol
dcb.fRtsControl = RTS_CONTROL_HANDSHAKE / /
/ / Sæt DSRDTR
dcb.fOutxDsrFlow = FALSE; / / tænde DSR flow kontrol
dcb.fDtrControl = DTR_CONTROL_ENABLE / /
dcb.fDtrControl = DTR_CONTROL_DISABLE / /
dcb.fDtrControl = DTR_CONTROL_HANDSHAKE / /

bPortReady = SetCommState (hComm, & dcb);

/ / Meddelelse timeouts er valgfrie

bPortReady = GetCommTimeouts (hComm, & CommTimeouts);

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

bPortReady = SetCommTimeouts (hComm, & CommTimeouts);

tilbagevenden hComm;
)CHAR SerialGetc (håndtere * hComm)
(
CHAR rxchar;
Bool bReadRC;
statisk DWORD iBytesRead;

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

tilbagevenden rxchar;
)

void SerialPutc (håndtere * hComm, CHAR txchar)
(
Bool bWriteRC;
statisk DWORD iBytesWritten;

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

tilbagevenden;
)

int vigtigste ()
(
Håndtere min = SerialInit ( "COM1", 9600);

char bogstav;
printf ( "test \ n");

Håndtere * ptr;
* ptr = min;for (;;)
(

SerialPutc (ptr, 'A');
printf ( "% c", SerialGetc (ptr));
getch ();
)

tilbagevenden 0;
)

 
i msVC og devC er det samme.Da de både kan bruge windows system opkald.

 
Jeg tror, bør du tjekke denne artikel:
http://www.codeproject.com/KB/system/serial.aspx

Held og lykke.

 
Hej,

Tjek det ud.
http://abdelrahman101.spaces.live.com/

Jeg håber sin nyttige.

Held og lykke.

 

Welcome to EDABoard.com

Sponsor

Back
Top