关于串口通讯有关问题
关于串口通讯问题!
HANDLE hEvent=0;
HANDLE hCom=0;
DCB dcb;
OVERLAPPED OverRead, OverWrite;
COMSTAT comstat;
OVERLAPPED os;
DWORD dwEvtMask=0;
//---------------------------------------
//初始化串口
int __stdcall InitCom(int port,int baud)
{
AnsiString comname;
comname= "COM "+IntToStr(port);
CloseHandle(hCom);
COMMTIMEOUTS CommTimeOuts;
if(hCom==INVALID_HANDLE_VALUE)
{
switch (GetLastError())
{
case ERROR_FILE_NOT_FOUND: MessageBox(NULL, "串口不存在! ", "提示信息 ",NULL );
break;
case ERROR_ACCESS_DENIED: MessageBox(NULL, "串口已被占用! ", "提示信息 ",NULL);
break;
}
return 0;
}
if(hCom!=0)
{
return 0;
}
hCom=CreateFile(comname.c_str(), //文件名
GENERIC_READ|GENERIC_WRITE,//访问模式允许读写
0, //此项必须是0
NULL,//无安全参数
OPEN_EXISTING,//创建方式
FILE_FLAG_OVERLAPPED,//异步工作方式
NULL);
if(hCom==INVALID_HANDLE_VALUE)
{
ShowMessage( "打开串口失败! ");
return 0;
}
HANDLE hEvent=0;
HANDLE hCom=0;
DCB dcb;
OVERLAPPED OverRead, OverWrite;
COMSTAT comstat;
OVERLAPPED os;
DWORD dwEvtMask=0;
//---------------------------------------
//初始化串口
int __stdcall InitCom(int port,int baud)
{
AnsiString comname;
comname= "COM "+IntToStr(port);
CloseHandle(hCom);
COMMTIMEOUTS CommTimeOuts;
if(hCom==INVALID_HANDLE_VALUE)
{
switch (GetLastError())
{
case ERROR_FILE_NOT_FOUND: MessageBox(NULL, "串口不存在! ", "提示信息 ",NULL );
break;
case ERROR_ACCESS_DENIED: MessageBox(NULL, "串口已被占用! ", "提示信息 ",NULL);
break;
}
return 0;
}
if(hCom!=0)
{
return 0;
}
hCom=CreateFile(comname.c_str(), //文件名
GENERIC_READ|GENERIC_WRITE,//访问模式允许读写
0, //此项必须是0
NULL,//无安全参数
OPEN_EXISTING,//创建方式
FILE_FLAG_OVERLAPPED,//异步工作方式
NULL);
if(hCom==INVALID_HANDLE_VALUE)
{
ShowMessage( "打开串口失败! ");
return 0;
}