主题:MSComm串口通讯问题求助,如何发送接收十六进制码?
在下愚钝,下面本菜鸟代码,请各位帮帮忙,谢谢!!!
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;
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) //发送Memo2中的数据
{
MSComm1->Output=StringToOleStr(Memo2->Text); //把AnsiString型转化为Ole形式
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSComm1Comm(TObject *Sender)
{
AnsiString str; //申明一个AnsiString类型变量
OleVariant s; //申明一个用于接收数据的OleVariant类型变量
int a;
if(MSComm1->CommEvent==comEvReceive)
{
if(MSComm1->InBufferCount)
{
s=MSComm1->Input;
str=s.AsType(varString);
a = StrToInt(str);
str = IntToHex(a,2);
Memo1->Text=Memo1->Text+str;
}
}
}
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;
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) //发送Memo2中的数据
{
MSComm1->Output=StringToOleStr(Memo2->Text); //把AnsiString型转化为Ole形式
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MSComm1Comm(TObject *Sender)
{
AnsiString str; //申明一个AnsiString类型变量
OleVariant s; //申明一个用于接收数据的OleVariant类型变量
int a;
if(MSComm1->CommEvent==comEvReceive)
{
if(MSComm1->InBufferCount)
{
s=MSComm1->Input;
str=s.AsType(varString);
a = StrToInt(str);
str = IntToHex(a,2);
Memo1->Text=Memo1->Text+str;
}
}
}