⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~cpp

📁 实现串口通信 主要是利用COMMS控件实现程序,希望对各位朋友都有或多或少的帮助,如有不足之处还请多指教 谢谢
💻 ~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==true)
         {
             Button1->Enabled=false;
             Button2->Enabled=true;
             Button3->Enabled=true;
             Button4->Enabled=true;
             Shape1->Brush->Color=clGreen;
         }
         else
         {
             Button1->Enabled=false;
             Button2->Enabled=false;
             Button3->Enabled=false;
             Button4->Enabled=false;
             Shape1->Brush->Color=clRed;
         }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
     if(MSComm1->PortOpen!=true)
      {
         MSComm1->CommPort=StrToInt(ComboBox1->Text);//选择串口号
         MSComm1->Settings=
         ComboBox2->Text+","+
         ComboBox3->Text+","+
         ComboBox4->Text+","+
         ComboBox5->Text; file://设置串口的属性波特率、奇偶校验、数据位和、//停止位。
         MSComm1->InputMode=0;//设置传入数据的格式,0表示文本形式
         MSComm1->PortOpen=true;//打开串口
         Button1->Enabled=false;
         Button2->Enabled=true;
         Button3->Enabled=true;
         Button4->Enabled=true;
         Shape1->Brush->Color=clGreen;
       }

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
       if(MSComm1->PortOpen!=false)
         {
           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)
{
    MSComm1->Output=StringToOleStr(Memo2->Text); file://把AnsiString型转化成//Ole形式。
        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSComm1Comm(TObject *Sender)
{
       AnsiString str; //file://声明一个AnsiString类型的变量
       OleVariant s; //file://声明一个用于接收数据的OleVariant变量。
       if(MSComm1->CommEvent==comEvReceive)
                     // 接收缓冲区中是否收到Rthreshold个字符。
         {
            if(MSComm1->InBufferCount)// 是否有字符驻留在接收缓冲区等待被取出
             {
               s=MSComm1->Input;//接收数据
               str=s.AsType(varString); file://把接收到的OleVariant变量转换成AnsiString类型
               Memo1->Text=Memo1->Text+str;//把接收到的数据显示在Memo1中。
             }
         } 

}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
        AnsiString filename1;
        SaveDialog1->Filter="Text files (*.txt)|*.txt|All files (*.*)|*.*";//文件类型过滤器
        SaveDialog1->FilterIndex=2;
        if(SaveDialog1->Execute())
         {
            filename1=SaveDialog1->FileName;
            Memo1->Lines->SaveToFile(filename1);//把收到的数据保存在文件filename1中
         }

}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -