资源描述:
《vbmscomm控件在多机通信中的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作说明:此程序主要是为了实现单片机多机通信而设置,所以功能都是围绕这个目的实现。多机通信中的第九位要通过校验位发送。M代表发送第九位为1,S代表发送第九位为0.首先打开串口在发送窗口写入发送地址点击手动发送,此时校验一定要选择mark,这样串口才能识别第九位发送的1,然后就发送数据,此时改变校验方式选择space,串口就识别第九位为0.(程序设置若com口和校验方式该变串口会自动关闭必须再次自动打开)。通信代码******窗体加载内容PrivateSubForm_Load()IfMSComm1.Po
2、rtOpen=TrueThen'默认必须按下打开串口按钮MSComm1.PortOpen=False'所以启动就默认关闭串口ElseEndIfCombo1.AddItem"COM1"列表框添加com口Combo1.AddItem"COM2"Combo1.AddItem"COM3"Combo1.AddItem"COM4"Combo1.AddItem"COM5"Combo1.AddItem"COM6"Combo1.AddItem"COM7"Combo1.AddItem"COM8"Combo1.ListIn
3、dex=0'默认com1Combo2.AddItem"9600"Combo2.AddItem"4800"Combo2.AddItem"2400"Combo2.AddItem"1200"Combo2.ListIndex=0默认波特率Combo3.AddItem"无None"Combo3.AddItem"奇Odd"Combo3.AddItem"偶Even"Combo3.AddItem"mark"Combo3.AddItem"space"Combo3.ListIndex=0默认无校验Combo4.AddIt
4、em"7"Combo4.AddItem"8"Combo4.ListIndex=1Combo5.AddItem"1"Combo5.AddItem"2"Combo5.ListIndex=0默认一停止位MSComm1.CommPort=Combo1.ListIndex+1MSComm1.Settings="9600,S,8,1"‘默认属性设置“第九位为0”Shape1.FillColor=vbRed'串口控件没打开次控件为红色EndSub*****com口有变动关闭控件且读取新的com口PrivateSub
5、Combo1_click()'change不可以替代clickIfMSComm1.PortOpen=TrueThen'如果串口打开先关闭后再进行其他操作MSComm1.PortOpen=FalseEndIfMSComm1.CommPort=Combo1.ListIndex+1'读取com口号Command2.Caption="打开串口"Shape1.FillColor=vbRedEndSub*****校验方式有变动选择新的方式且关闭串口PrivateSubCOMBO3_CLICK()IfMSComm1
6、.PortOpen=TrueThenMSComm1.PortOpen=FalseEndIfIfCombo3="无None"ThenMSComm1.Settings="9600,N,8,1"ElseIfCombo3="奇Odd"ThenMSComm1.Settings="9600,O,8,1"ElseIfCombo3="偶Even"ThenMSComm1.Settings="9600,E,8,1"ElseIfCombo3="mark"ThenMSComm1.Settings="9600,M,8,1"El
7、seMSComm1.Settings="9600,S,8,1"EndIfCommand2.Caption="打开串口"Shape1.FillColor=vbRedEndSub****按钮控制打开和关闭串口PrivateSubCommand2_Click()OnErrorGoTouerror'发现错误跳转到错误处理IfCommand2.Caption="关闭串口"ThenMSComm1.PortOpen=FalseCommand2.Caption="打开串口"Shape1.FillColor=vbRed
8、'灯颜色改变ElseMSComm1.PortOpen=TrueCommand2.Caption="关闭串口"Shape1.FillColor=vbGreenEndIfExitSubuerror:msg$="无效端口号"'错误显示Title$="串口调试助手"X=MsgBox(msg$,48,Title$)'48标示显示警告图标EndSub****串口接收事件触发PrivateSubMSComm1_OnComm()DimBytReceived()AsByt