欢迎来到天天文库
浏览记录
ID:37389913
大小:38.00 KB
页数:7页
时间:2019-05-23
《上位机与单片机之间的通讯》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.注册MSComm控件 众所周知,C++Builder本身并不提供串行通讯控件MSComm,但我们却可以通过注册后直接使用它。启动C++Builder5.0后,然后选择C++Builder主菜单中的Component菜单项,单击ImportActiveControl命令,弹出ImportActive窗口,选择MicrosoftCommControl6.0,再选择Install按钮执行安装命令,系统将自动进行编译,编译完成后即完成MSComm控件在C++Builder中的注册,系统默认安装在控件板的Active页,接下来我们就可以像使用C+
2、+Builder本身提供的控件那样使用新注册的MSComm控件了。(前提条件是你的机子上安装了VisualBasic,或者有它的库) 2.具体实现 新建一个工程Project1,把注册好的MSComm控件加入到窗体中,然后再加入5个ComboBox用来设置串口的属性,4个Button分别用来"打开串口""关闭串口""发送数据""保存数据",2个Memo控件分别用来显示接收到的数据和发送的数据。再加入一个Shape控件用来标明串口是否打开。 ComboBox1用来设置串口号,通过它的Items属性设置1,2,3,4四个列表项分别表示COM
3、1,COM2,COM3,COM4口。ComboBox2用来设置波特率,ComboBox3用来设置奇偶校验位,ComboBox4用来设置数据位,ComboBox5用来设置停止位。他们的缺省值分别是9600,n,8,1。 Button1用来打开串口,Button2用来关闭串口,Button3用来发送数据,Button4用来保存数据。Memo1用来显示发送的数据,Memo2显示接收的数据。Shape1的Shape属性设置为stCircle。下面给出部分源码:__fastcallTForm1::TForm1(TComponent*Owner):TF
4、orm(Owner){if(MSComm1->PortOpen==true){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
5、=clRed;}}void__fastcallTForm1::Button1Click(TObject*Sender)//打开串口{if(MSComm1->PortOpen!=true){MSComm1->CommPort=StrToInt(ComboBox1->Text);//选择串口号MSComm1->Settings=ComboBox2->Text+","+ComboBox3->Text+","+ComboBox4->Text+","+ComboBox5->Text;file://设置串口的属性波特率、奇偶校验、数据位和、//停止位。M
6、SComm1->InputMode=0;//设置传入数据的格式,0表示文本形式MSComm1->PortOpen=true;//打开串口Button1->Enabled=false;Button2->Enabled=true;Button3->Enabled=true;Button4->Enabled=true;Shape1->Brush->Color=clGreen;}}void__fastcallTForm1::Button2Click(TObject*Sender)//关闭串口{if(MSComm1->PortOpen!=false){
7、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;}} MSComm控件的Input和Output属性在ObjectInspector中是看不到的,而且在C
8、++Builder环境下这两个属性已不在是VB、VC中的原类型,而是OleVariant类型,也就是Ole万能变量,这就需要我们在发送接收数据时要把数据转换成Ole
此文档下载收益归作者所有