- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上位机与单片机之间的通讯
1.注册MSComm控件
众所周知,C++Builder本身并不提供串行通讯控件MSComm,但我们却可以通过注册后直接使用它。启动C++Builder5.0后,然后选择C++Builder主菜单中的Component菜单项,单击Import Active Control命令,弹出Import Active窗口,选择Microsoft Comm Control6.0,再选择Install按钮执行安装命令,系统将自动进行编译,编译完成后即完成MSComm控件在C++Builder中的注册,系统默认安装在控件板的Active页,接下来我们就可以像使用C++Builder本身提供的控件那样使用新注册的MSComm控件了。(前提条件是你的机子上安装了Visual Basic,或者有它的库)
2.具体实现
新建一个工程Project1,把注册好的MSComm控件加入到窗体中,然后再加入5个ComboBox用来设置串口的属性,4个Button分别用来打开串口 关闭串口发送数据保存数据 ,2个Memo控件分别用来显示接收到的数据和发送的数据。再加入一个Shape控件用来标明串口是否打开。
ComboBox1用来设置串口号,通过它的Items属性设置1,2,3,4四个列表项分别表示COM1,COM2,COM3,COM4口。ComboBox2用来设置波特率,ComboBox3用来设置奇偶校验位,ComboBox4用来设置数据位,ComboBox5用来设置停止位。他们的缺省值分别是9600,n,8,1。
Button1用来打开串口,Button2用来关闭串口,Button3用来发送数据,Button4用来保存数据。Memo1用来显示发送的数据,Memo2显示接收的数据。Shape1的Shape属性设置为stCircle。
下面给出部分源码:
__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
{
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!=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;
}
}
MSComm控件的Input和Output属性在Object Inspector中是看不到的,而且在C++Builder环境下这两个属性已不在是VB、VC中的原类型,而是OleVariant类型,也就是
文档评论(0)