VB程序员博客

VB程序开发

需要实现这样一个功能。在电脑中设计一个与硬件实物一模一样的界面,通过这个界面的操作就可以实现控制硬件的功能。硬件比如是视音频延时器或画面合成器等等类似的设备,通过rs232接口与PC连接。

我想通过VB的MSComm控件实现,问题就是我从没有接触过这方面,也没有任何思路和想法。请教高人能够具体说明一下,怎样才能实现?最好给个例子解释一下,希望各位大虾不吝赐教!

小弟我比较菜,问题比较多。

请留下邮箱,我发个教材给你, 对你学习串口的软硬件帮助会很大

我的邮箱lingfogzj@163.com

楼上的两位多谢啦!!!

已发给你了 RS232.RAR , 你要先安装 AcrobatReader

下面这是我接收电子秤的一个测试代码
'添加 Command1 Command2 List1 Mscomm1
'我仪表接收的资料是以Chr(2)为启始符,从紧跟在后面的"+"开始抓取7位就是我要的汽车衡的卡车重量.

Option Explicit
Dim rcvdata$, startpos%, stoppos%, trecord&, Getwt&, Lastwt&, Scount%, stopcatch As Boolean

Private Sub Form_Load()
  With MSComm1
      .CommPort = 1
      .Settings = "9600,n,8,1"
      .InputLen = 0
      .InBufferSize = 1
      .RThreshold = 1
      .InputMode = comInputModeText
  End With
  If Not MSComm1.PortOpen Then MSComm1.PortOpen = True
  MSComm1.DTREnable = IIf(MSComm1.PortOpen, True, False)
  Command1.Caption = "开始接收": Command2.Caption = "停止"
End Sub

Private Sub Form_Unload(Cancel As Integer)
  MSComm1.PortOpen = False: End
End Sub

Private Sub Command1_Click()
  List1.Clear
  stopcatch = False: Scount = 0: Lastwt = 0
End Sub

Private Sub Command2_Click()
  stopcatch = True
  MSComm1.DTREnable = False
End Sub

Private Static Sub MSComm1_OnComm()
  Select Case MSComm1.CommEvent
      Case comEvReceive '接收缓冲区收到Rthreshold 个字符时触发
        Dim N As Long, SJARR() As Byte
        N = MSComm1.InBufferCount '接收缓冲区字符总数
        MSComm1.InputLen = 0
        rcvdata = Space(N)
        rcvdata = MSComm1.Input
        startpos = InStr(rcvdata, Chr(2) & "+")
        If startpos > 0 Then
            Getwt = Val(Mid(rcvdata, startpos + 2, 7))
            If Getwt > 2 Then
              If Abs(Lastwt - Getwt) <= 10 Then
                  Scount = Scount + 1
                  If Scount <= 5 Then List1.AddItem CStr(Getwt)
              Else
                  Lastwt = Getwt: Scount = 0
                  List1.AddItem CStr(Getwt)
              End If
              List1.Selected(List1.ListCount - 1) = True
            End If
        End If
  End Select
End Sub

问一下,如果

Dim aucTxBuf(0 To 5) As Byte

MSComm1.Output = aucTxBuf

如果这么发送的话每次都会发送6个字符的数据到串口
有没有办法判断如果数据是NULL,就不发了
比如数据只是 0D EE FE

在线等。。。。。。。

我邮箱 liyiming598@126.com

加为好友
发送私信
在线聊天
cbm666
这位兄弟,小弟也是一个菜鸟,能不能把教程也给我发一份,小弟万分感谢!
邮箱:yhdai_2008@126.com

谢谢,能否给小弟一份啊。wokan500@163.com

谢谢,能否给小弟也发一份啊。chenyubo1977@163.com

需要实现这样一个功能。在电脑中设计一个与硬件实物一模一样的界面,通过这个界面的操作就可以实现控制硬件的功能。硬件比如是视音频延时器或画面合成器等等类似的设备,通过rs232/485接口与PC连接。

我想通过VB的MSComm控件实现,问题就是我从没有接触过这方面,也没有任何思路和想法。请教高人能够具体说明一下,怎样才能实现?最好给个例子解释一下,希望各位大虾不吝赐教!

小弟我比较菜,问题比较多。
我的邮箱是:160284010@qq.com

给俺一份吧,大哥,workxiong@163.com
谢谢

各位大哥,有的话也给小弟我一份
我查了蛮多资料,没实例注释

忘了说邮箱,heyalin350535704@163.com


标签: , , ,