主题:api函数编写的程序打不开串口
程序如下:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <winioctl.h>
#include<windows.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
{
char *ComNo;
HANDLE PortTalk_Handle;
DCB dcb;
ComNo ="COM1"; //串口(COM1) 通信初始化
PortTalk_Handle=CreateFile (ComNo,GENERIC_READ |GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
if(PortTalk_Handle==INVALID_HANDLE_VALUE) //如果通信端口未打开
{MessageBox(0,"打开通信端口错误!! "," Error",MB_OK);return;}
//将dcb 地址传入,以取得通信参数
GetCommState(PortTalk_Handle,&dcb);
//将dcb 地址传入,以取得通信参数
dcb.BaudRate=CBR_9600; //设置波特率为9600
dcb.ByteSize =8; //字节为8 位
dcb.Parity =NOPARITY; //校验位为None
dcb.StopBits =ONESTOPBIT; //停止位为1
//通信端口设置
if(!SetCommState(PortTalk_Handle,&dcb)) //设置通信端口状态
{MessageBox(0,"通信端口设置错误!!! ","设置错误",MB_OK);
CloseHandle(PortTalk_Handle);
return;
}
}
}
//---------------------------------------------------------------------------
我想用一个按钮打开串口,确死活打不开,请高手指点一下,谢谢
//---------------------------------------------------------------------------
#include <vcl.h>
#include <winioctl.h>
#include<windows.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
{
char *ComNo;
HANDLE PortTalk_Handle;
DCB dcb;
ComNo ="COM1"; //串口(COM1) 通信初始化
PortTalk_Handle=CreateFile (ComNo,GENERIC_READ |GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0);
if(PortTalk_Handle==INVALID_HANDLE_VALUE) //如果通信端口未打开
{MessageBox(0,"打开通信端口错误!! "," Error",MB_OK);return;}
//将dcb 地址传入,以取得通信参数
GetCommState(PortTalk_Handle,&dcb);
//将dcb 地址传入,以取得通信参数
dcb.BaudRate=CBR_9600; //设置波特率为9600
dcb.ByteSize =8; //字节为8 位
dcb.Parity =NOPARITY; //校验位为None
dcb.StopBits =ONESTOPBIT; //停止位为1
//通信端口设置
if(!SetCommState(PortTalk_Handle,&dcb)) //设置通信端口状态
{MessageBox(0,"通信端口设置错误!!! ","设置错误",MB_OK);
CloseHandle(PortTalk_Handle);
return;
}
}
}
//---------------------------------------------------------------------------
我想用一个按钮打开串口,确死活打不开,请高手指点一下,谢谢