Home > Back-end >  RS - 232 serial port open failed, please help see what reason?
RS - 232 serial port open failed, please help see what reason?

Time:09-25

//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

#include
# pragma hdrstop

# include "Unit1. H"
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# pragma package (smart_init)
# pragma resource "*. DFM
"HANDLE hComm;
TForm1 * Form1;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
__fastcall TForm1: : TForm1 (TComponent * Owner)
: TForm (the Owner)
{
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Void __fastcall TForm1: : Button2Click (TObject * Sender)
{
If (hComm!=INVALID_HANDLE_VALUE) CloseHandle (hComm);
The exit (EXIT_SUCCESS);
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Void __fastcall TForm1: : Button1Click (TObject * Sender)
{
Char * ComNo;
DCB DCB.
String Temp;
//to open communication end
Temp="COM3";
//transition to pointer type char
ComNo=Temp. C_str ();
HComm=CreateFile (ComNo, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0).
If (hComm==INVALID_HANDLE_VALUE)//if there is no open communication port
{
Error MessageBox (0, "open communication port!! Comn ", "Error", MB_OK);
return;
}//DCBD address into, in order to obtain the communication parameter
The else MessageBox (0, "open communication port is successful,", "Comn connect", MB_OK);
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

CodePudding user response:

Could it be the name of the com, try:
\ \. \ COM3

CodePudding user response:

How to define class inside to see

CodePudding user response:

//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

# # ifndef CommH
# define CommH
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
#include

The class CComm
{
Private:
HANDLE hComm;

Bool InitComm (int iBaudRate);
Bool SendMsg (Byte * bteMsg);
Public:
CComm ();
~ CComm ();

Bool Initialize (int iComPort, int iBaudRate);
Bool Initialize (AnsiString sComm, DCB dcbComm);
Void CloseComm ();

Bool SendMsg (Byte * buf, dwords iCount);
Bool ReadMsg (BYTE * buf, dwords & amp; DwCount);
Bool ClearInBuf ();
};
# endif

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Comm. CPP
Realization of serial communication class for sending and receiving binary data
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --


# pragma hdrstop

H # include "Comm."
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

# pragma package (smart_init)
CComm: : CComm ()
{
HComm=NULL;
}

CComm: : ~ CComm ()
{
If (hComm) CloseHandle (hComm);
}


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Function: :
Open the serial port, and set the communication parameters, if failed, close a serial port
Input:
IComm: effectively serial port, such as COM1 is enter 1
IBaudRate: effective baud rate
Operate:
1, open the serial port, a successful continues to initialize the serial port,
2, if the failure to close a serial port
Output:
Successful return true, otherwise it returns FALSE
Public Value:
HComm

GodAndDog 2003-5-8
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
Bool CComm: : Initialize (int iComPort, int iBaudRate)
{
AnsiString strComm;

StrComm="COM" + IntToStr (iComPort);
HComm=CreateFile (strComm c_str (), GENERIC_READ | GENERIC_WRITE
, 0, NULL, OPEN_EXISTING, 0, NULL);

If (hComm)
{
If (InitComm (iBaudRate))
{
Return true;
}
}

If (hComm)
{
CloseComm ();
}

Return false;
}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Function: :
To open the serial port communication parameter
Input:
IBaudRate: effective baud rate
Operate:
Set iBaudRate, 8, n, 1, binary mode
Output:
Successful return true, otherwise it returns FALSE
Public:
None

GodAndDog 2003-5-8
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
Bool CComm: : InitComm (int iBaudRate)
{
//==============================
DCB dcbComm;
//==============================

ZeroMemory (& amp; DcbComm, sizeof (dcbComm));

DcbComm. DCBlength=sizeof (dcbComm);
DcbComm. FBinary=true;
DcbComm. BaudRate=iBaudRate;
DcbComm. ByteSize=8;
DcbComm. Parity=NOPARITY;
DcbComm. StopBits=ONESTOPBIT;

Return (SetCommState (hComm, & amp; DcbComm));
}

Bool CComm: : Initialize (AnsiString sComm, DCB dcbComm)
{
HComm=CreateFile (sComm c_str (), GENERIC_READ | GENERIC_WRITE
, 0, NULL, OPEN_EXISTING, 0, NULL);

If (hComm)
{
If (SetCommState (hComm, & amp; DcbComm))
{
Return true;
}
}

If (hComm)
{
The CloseHandle (hComm);
}

Return false; nullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnullnull
  • Related