Victor 串口控件简介:
Victor 串口控件使用非常简单, 保你拿来就会!!!
完全的 VCL/FMX 风格, 双击控件可设置常用参数。
设置串口参数:
YbCommDevice1->PortParams = _T("COM5,56000,N,8,1"); |
打开串口:
try
{
YbCommDevice1->Active = true;
}
catch(Exception &e)
{
ShowMessage(e.Message);
} |
写数据
YbCommDevice1->Write(任意数据的地址,字节数); |
例如
int i = 5;
char a[10];
YbCommDevice1->Write(&i,sizeof(int));
YbCommDevice1->Write(a, 10);
YbCommDevice1->Write(Memo2->Text.c_str(), Memo2->Text.Length()); |
读数据
实际读出字节数 = YbCommDevice1->Read(任意缓存地址,缓存容量); |
例如
unsigned char Buf[1000];
int n = YbCommDevice1->Read(Buf,1000); |
串口控件新功能简介:
与单片机或仪表通讯, 使用 PackageType = cptFrameTimeout; 方式, 将接收到完整的每帧单片机数据!
本程序是在 OnPackage 事件里接收数据, 也可以在定时器, 或者其他任何想接收数据的地方接收, 包括线程。
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
YbCommDevice1->PortParams = "COM2,9600,N,8,1";
YbCommDevice1->Active = true; //打开串口
YbCommDevice1->PackageType = cptFrameTimeout; //使用超时的方法识别每帧数据
YbCommDevice1->UsePackage = true; //启动 Package
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char Buf[3];
Buf[0] = 0x99;
Buf[1] = 0x1b;
Buf[2] = 0x0d;
YbCommDevice1->WritePackage(Buf,3); //发送3个字节: 99 1B 0D
}
//---------------------------------------------------------------------------
void __fastcall TForm1::YbCommDevice1Package(TObject *Sender, int NotifyType)
{
unsigned char Buf[1000]; //接收缓存
int n = YbCommDevice1->ReadPackage(Buf,1000);
if(n>0) //收到数据的字节数
{
AnsiString s;
for(int i=0; i<n; i++)
s += IntToHex(Buf[i],2) + " ";
Memo1->Lines->Add(s); //在 Memo1 里显示出收到的数据, 将会是完整的一帧数据
}
}
//--------------------------------------------------------------------------- |
Victor 串口控件常见问题及解决方法
Victor 串口控件下载
文档更新列表
• 2017-05-21 最初版本
文档索引
|