利用VB调试串口通讯_第1页
利用VB调试串口通讯_第2页
利用VB调试串口通讯_第3页
利用VB调试串口通讯_第4页
利用VB调试串口通讯_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、串口通讯调试器:用VB调试串口通讯-vb教程疯狂代码 http:/CrazyC :http:/CrazyClass=MsoNormal style="MARGIN: 0cm 0cm 0pt">现有电子秤台使用串口和计算机进行通讯编写VB来访问串口达到读取电子秤上显示数据该电子秤为BE01型仪表输出为RS-232C标准接口波特率为300-9600、偶校验、7个数据位、2个停止位所有均发送11位ASCII码个起始位在VB中和串口通讯需要引入Control控件MSComm串口通讯Control控件(在Microsoft Comm Control 6.0中具体如下:Contr

2、ol控件简称:MSCDim Out(12 As Byte ´接收var中值Dim var As Variant ´接收MSC.input中数值Dim nRece As Integer ´计算MSC.inputbuffer个数Dim i As Integer, j As Integer ´随即变量计算循环*Private Sub Form_LoadClearTextWith MSC.CommPort = 1 ´设置Com1为通信端口.Settings = "9600,E,7,2" ´设置通信端口参数 9600赫兹、偶

3、校验、7个数据位、1个停止位.(这里需要进步介绍说明是:.Setting=”BBBB,P,D,S”含义是:B:Baud Rate(波特率;P:Parity(奇偶;D:Data Bit;S:Stop Bit.InBufferSize = 40 ´设置缓冲区接收数据为40字节.InputLen = 1 ´设置Input次从接收缓冲读取字节数为1.RThreshold = 1 ´设置接收个字节就产生OnComm事件End WithEnd Sub* Private Sub ClearTextText3.Text = ""Text2.Text = &qu

4、ot;5"Text1.Text = ""End SubPrivate Sub Command1_ClickClearText´ nRece = 0 ´计数器清零With MSC.InputMode = comInputModeBinary ´设置数据接收模式为 2进制形式.InBufferCount = 0 ´清除接收缓冲区If Not .PortOpen Then.PortOpen = True ´打开通信端口End IfEnd WithEnd SubPrivate Sub MSC_OnCommDelayTime

5、 用来延续时间ClearTextWith MSCSelect Case .CommEvent ´判断通信事件Case comEvReceive: ´收到Rthreshold个字节产生接收事件SwichVar 1If Out(1 = 2 Then ´判断是否为数据开始标志.RThreshold = 0 ´关闭OnComm事件接收End IfDoDoEventsLoop Until .InBufferCount >= 3 ´循环等待接收缓冲区>=3个字节 ´ nRece = nRece + 1For i = 2 To 12Sw

6、ichVar iText1.Text = Text1.Text & Chr(Out(iNextText1.Text = LTrim(Text1.TextText2.Text = Text2.Text & CStr(nRece.RThreshold = 1 ´打开MSComm事件接收Case Else´ .PortOpen = FalseEnd SelectEnd WithEnd Sub* Private Sub DelayTimeDim bDT As BooleanDim sPrevious As Single, sLast As SinglebDT = T

7、ruesPrevious = Timer (Timer可以计算从子夜到现在所经过秒数在Microsoft Windows中Timer可以返回秒小数部分Do While bDTIf Timer - sPrevious >= 0.3 Then bDT = FalseLoopbDT = TrueEnd SubPrivate Sub SwichVar(ByVal nNum As IntegerDelayTimevar = Nullvar = MSC.InputOut(nNum = var(0End Sub(设置接收数据模式采用 2进制形式即 InputMode=comInputModeBinar

8、y但用Input属性读取数据时不能直接赋值给 Byte 类型变量只能通过先赋值给个 Variant 类型变量返回个 2进制数据再转换保存到Byte类型数变量中Private Sub Text1_ChangeText3.Text = CText(Text1.Text - CText(Text2.Text End Sub * Private Function CText(ByVal str As String As Currency If str <> "" Then CText = CCur(Val(str Else CText = 0 End If End Fu

9、nction (仪表每秒发送50帧数据微机收到帧完整数据至少需要20 ms时间然后再进行数据处理如果微机在下帧数据接收 前即20ms内能将数据计算处理完毕则接收缓冲区内只会保存有帧数据不会存有两帧以上数据接收缓冲区大小不 会影响实时监测效果(接收缓冲区>4字节这时完全可以实现实时监测或实时控制;如果微机在20ms内不能将数 据计算处理完毕接收缓冲区设置得又很大在数据计算处理完毕前接收缓冲区内就会保存有两帧以上数据而且次 工作时间越长缓冲区内滞留数据帧就越多数据采集和数据处理的间产生逐渐增大额外时间差当接收缓冲区充满 后时间差不再增大固定在某值部分数据因不能及时采集到接收缓冲区中数据产生丢失现象真实工作情况就会和 微机处理结果产生较大时间差对实时监测和实时控制很不利这种情况下接收缓冲区大小就会影响实时监测效果 所以接收缓冲区设置不能过大以保证数据处理实时性 小结:本文所用仪表为梅特勒公司出产BE01型电子秤其输出每个编码均为标准ASCII码其他仪表存在发射编码中 含有BCD压缩码而且分为高低位需要接收后对其进行解码换算的后还要将高位和低位数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论