📄 unit1.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "MSCommLib_OCX"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
if(MSComm1->PortOpen)
{
Button1->Enabled=false;
Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;
Shape1->Brush->Color=clGreen;
}
else
{
Button2->Enabled=true;
Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;
Shape1->Brush->Color=clRed;
}
}
//---------------------------------------------------------------------------
//打开串口
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(!MSComm1->PortOpen)
{
MSComm1->CommPort=StrToInt(ComboBox1->Text); //选择串口号1
MSComm1->Settings=ComboBox2->Text+",n,8,1"; //设置串口的属性波特率、奇偶校验、数据位和停止位。
MSComm1->InputMode=0; //设置传入数据的格式,0表示文本形式
MSComm1->PortOpen=true; //打开串口
Button1->Enabled=false;
Button2->Enabled=true;
Button3->Enabled=true;
Button4->Enabled=true;
Shape1->Brush->Color=clGreen;
MSComm1->OutBufferCount = 0;
MSComm1->InBufferCount = 0;
}
else
ShowMessage("串口打开失败!");
}
//---------------------------------------------------------------------------
//关闭串口
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(MSComm1->PortOpen)
{
MSComm1->PortOpen=false;
Button1->Enabled=true;
Button2->Enabled=false;
Button3->Enabled=false;
Button4->Enabled=false;
Shape1->Brush->Color=clRed;
}
else
{
Button1->Enabled=false;
Button2->Enabled=true;
Shape1->Brush->Color=clRed;
}
}
//---------------------------------------------------------------------------
//发送数据
void __fastcall TForm1::Button3Click(TObject *Sender)
{
if (!MSComm1->PortOpen)
{
ShowMessage("串口未打开!");
return;
}
buff = Memo1->Text;
MSComm1->Output = buff;
}
//---------------------------------------------------------------------------
//保存数据
void __fastcall TForm1::Button4Click(TObject *Sender)
{
AnsiString filename1;
SaveDialog1->Filter="Doc files(*.doc)|*.doc|Text files (*.txt)|*.txt";//文件类型过滤器
SaveDialog1->FilterIndex=2;//默认第2个过滤器
if(SaveDialog1->Execute())
{
filename1=SaveDialog1->FileName;
Memo2->Lines->SaveToFile(filename1);//把收到的数据保存在文件filename1中
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSComm1Comm(TObject *Sender) //事件驱动方式
{
if(MSComm1->CommEvent == comEvReceive)
{
if(MSComm1->InBufferCount) //如果输入缓冲区不为空
{
buff = MSComm1->Input;
Memo2->Text = Memo2->Text+ buff;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
MSComm1->OutBufferCount = 0;
buff = "";
Memo1->Text = "";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button8Click(TObject *Sender)
{
MSComm1->InBufferCount = 0;
buff = "";
Memo2->Text = "";
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -