| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1955 人关注过本帖
标题:新手求助:VB串口发送异常问题
只看楼主 加入收藏
boxiang
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-3-8
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
新手求助:VB串口发送异常问题
编写VB串口发送程序,用示波器观察输出时序,出现一个问题:
设置正常,能基本正常运行,但发送16进制数据081H-0FEH时出现问题,示波器此时显示的波形和发送数据0的波形一样,当发送1-7FH之间的数据时,一切正常,百思不得其解,求助问题所在。初次求教,还不懂送分规矩,请谅解。在无锡中桥工作,如能现场指导,不胜感激与酬谢。

  MSComm1.Settings = "19200,e,8,1"

  MSComm1.Output = Chr(&H5A),此时波形正常,单片机也能正常接收
  MSComm1.Output = Chr(&H87),此时波形不正常。

另,用“串口调试助手”调试和观察波形,不论发0-0FFH间的任何数据,示波器显示都正常,单片机接收也正常。就是用VB发,出现异常,不知问题出在哪里。

[此贴子已经被作者于2017-3-8 11:32编辑过]

搜索更多相关主题的帖子: 不胜感激 单片机 示波器 无锡 
2017-03-08 11:18
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
关键在 chr 函数上面,你能使用 byte 数据直接发送吗?
串口这块,没用过。

授人于鱼,不如授人于渔
早已停用QQ了
2017-03-08 12:47
boxiang
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-3-8
收藏
得分:0 
回复 2楼 风吹过b
谢谢关注,试了一下,MSComm1.Output = byte(&H87)等,
出现“编译错误”,或者出现“缺少表达式”,应该怎样正确编写?
2017-03-08 13:21
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
Output 属性
      

往传输缓冲区写数据流。该属性在设计时无效,在运行时为只读。

语法

object.Output [ = value ]

Output 属性语法包括下列部分:

部分 描述
object 对象表达式,其值是“应用于”列表中的对象。
value 要写到传输缓冲区中的一个字符串。


说明

Output 属性可以传输文本数据或二进制数据。用 Output 属性传输文本数据,必须定义一个包含一个字符串的 Variant。发送二进制数据,必须传递一个包含字节数组的 Variant 到 Output 属性。

正常情况下,如果发送一个 ANSI 字符串到应用程序,可以以文本数据的形式发送。如果发送包含嵌入控制字符、Null 字符等等的数据,要以二进制形式发送。

数据类型

Variant
----------------------------
dim tmp() as byte
redim tmp(0)
tmp(0)= &H87

MSComm1.Output = tmp

大概是这样的,
如果错误的话,那就定义部分修改一下再测试。
dim tmp() as Variant

没用过串口通讯来,没条件。




授人于鱼,不如授人于渔
早已停用QQ了
2017-03-09 09:08
boxiang
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-3-8
收藏
得分:0 
回复 4楼 风吹过b
谢谢,单一字节正常了!

我原来发数据串时用的是:
    Dim 数据1 As Byte,Dim 数据2 As Byte,......
    数据1 = &H5A,数据2 = &H87  ......
    数据串 = Chr(数据1) & Chr(数据2) & Chr(数据3)    ......
    MSComm1.Output = 数据串
   
现在:
    Dim tmp() As Byte
    ReDim tmp(0)
    tmp(0) = 数据1
    MSComm1.Output = tmp
我琢磨了一下,还是不知道数据串该怎么写,初学,还望赐教,谢谢。
另外送分应该怎样操作,我也还不会,还请指点一下。
2017-03-09 23:22
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 
如果你的数据串一共有5字节
    Dim tmp() As Byte
    ReDim tmp(4)               '重定义大小
    tmp(0) = &H5A              '对每一个字节进行赋值
    tmp(1) = &H87
    tmp(2) = 。。。
    tmp(3) = ...
    tmp(4) = ....

    MSComm1.Output = tmp

授人于鱼,不如授人于渔
早已停用QQ了
2017-03-10 14:58
boxiang
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-3-8
收藏
得分:0 
回复 6楼 风吹过b
谢谢,周末快乐!
2017-03-10 16:27
快速回复:新手求助:VB串口发送异常问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036466 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved