首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

请问:关于COM口接收发送数据

2013-07-04 
请教:关于COM口接收发送数据我是在自己电脑上用VB作的一个测试,在FORM上添加一个cmdTest的按钮,cmdTest_Cl

请教:关于COM口接收发送数据
我是在自己电脑上用VB作的一个测试,在FORM上添加一个cmdTest的按钮,cmdTest_Click部分执行没有问题,但是MScommEvent的没有捕获到OUTPUT的信息

代码如下:

Private Sub cmdTest_Click()   '打开串口
    
    If MSComm1.PortOpen = False Then
        MSComm1.CommPort = 1 '设定Com1
        MSComm1.Settings = "9600,n,8,1" '9600波特率,无校验,8位数据位,1位停止位
        MSComm1.PortOpen = True '打开串口
    End If
    MSComm1.OutBufferCount = 0 '清空发送缓冲区
    MSComm1.InBufferCount = 0 '清空接收缓冲区
    '发送字符(vbcr)结束
    MSComm1.Output = "This is a qood book ! " & vbCr
End Sub
Private Sub MScommEvent()
    Select Case MSComm1.CommEvent
    Case comEvReceive
        Dim Buffer As Variant
        MSComm1.InputLen = 0
        '接收二进制数据
        MSComm1.InputMode = ComInputModeBinary
        Buffer = MSComm1.Input
        '接收字符数据
        MSComm1.InputMode = comInputModeText
        Buffer = MSComm1.Input
        MsgBox (Buffer)
    Case Else
    End Select
End Sub


[解决办法]
那必须是COM口的2与3脚短接,且在MSComm1控件的OnSComm事件才能接收到数据。
[解决办法]
串口调试软件
[解决办法]
通信测试通常需要有2个COM口,并且通过数据线连接。
[解决办法]
应该是可以的。
------解决方案--------------------


推荐使用portmon软件辅助调试串口通信程序。
[解决办法]
首先,硬件要连接正确
第二 你通信的对象要对你发出的数据有相应,即能给你返回一些数据
第三,这个函数的红色部分有问题

Private Sub MScommEvent()
    Select Case MSComm1.CommEvent
    Case comEvReceive
        Dim Buffer As Variant
        MSComm1.InputLen = 0 '错误,这会将接收缓存区数据全清除,你肯定读不到数据
        '接收二进制数据
        MSComm1.InputMode = ComInputModeBinary
        Buffer = MSComm1.Input
        '接收字符数据
        MSComm1.InputMode = comInputModeText
        Buffer = MSComm1.Input
        MsgBox (Buffer)
    Case Else
    End Select
End Sub

热点排行