CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  网络编程

MSCOMM串口通讯问题

楼主closeing()2005-11-08 14:08:30 在 VB / 网络编程 提问

我准备用MSCOMM做一个串口通讯  
  发送数据:8F 5A   05    
  接收数据:81   80   5A   05   0B   08   0D   2D   03   00   01   00   8F  
   
  我现在在OnComm事件中写了这么一段接收的程序  
  Private   Sub   elMSComm_OnComm()  
          Select   Case   elMSComm.CommEvent  
                  Case   comEvReceive  
                      Buffer   =   elMSComm.Input  
                          For   i   =   LBound(Buffer)   To   UBound(Buffer)  
                                          elReceive(i)   =   Buffer(i)  
                          Next   i  
                                End   If  
                          End   If  
          End   Select  
   
  但是这个elReceive只能收到8位数据,无法一次收到全部接收数据,请问有什么办法能够实现在上述接收中的elReceive能收到超过8位的数据 问题点数:100、回复次数:9Top

1 楼cuilei197979(风)回复于 2005-11-08 15:42:44 得分 1

帮你顶Top

2 楼zou19820704(天下英雄)回复于 2005-11-08 16:07:03 得分 2

你对elMSComm的input设置为多少,我觉得应该是  
      len(81   80   5A   05   0B   08   0D   2D   03   00   01   00   8F)   当接收到这么多的字符的时候就触发一次   Case   comEvReceive   这样才可以全部接收!  
  Top

3 楼zhzhq800204(lazio)回复于 2005-11-08 16:55:02 得分 86

如果你的接收长度是固定的,那么可以通过设置缓冲区的大小来接收数据。设置缓冲区的大小可以通过MSComm的Rthreshold属性设置。例如,设置   Rthreshold   为   1,接收缓冲区收到每一个字符都会使   MSComm   控件产生   OnComm   事件。MSComm1.Rthreshold=len(81   80   5A   05   0B   08   0D   2D   03   00   01   00   8F)Top

4 楼TheRule(绝非偶然)回复于 2005-11-08 21:19:27 得分 3

缓冲区长度太小,用上面方法解决Top

5 楼closeing()回复于 2005-11-08 21:22:54 得分 0

哦,我接收的长度不是固定的,接收长度在6到15之间的,如果把Rthreshold设置为一个常量的话,会出问题的,会得不到想要的数据Top

6 楼jinhailv(阿非)回复于 2005-11-09 09:14:24 得分 5

我在做串口通讯程序时遇到了这样一个问题:在VB中我需要将一个浮点型数据(single)转换成一个四位字节的字符串后,送给下位才能实现通讯.  
  例如:需要将数据         1.11  
                  转换成         (3F   8E   14   7B)   字符串的形式发给下位  
  另外,如何将下位传给我的字符串(3F   8E   14   7B)  
                  转换成浮点数   1.11  
  请各位高手给看看,谢谢!  
  Top

7 楼zou19820704(天下英雄)回复于 2005-11-09 12:59:58 得分 1

楼上在你的帖里面已经给你解答了,呵呵Top

8 楼jinhailv(阿非)回复于 2005-11-11 08:31:35 得分 1

谢谢!Top

9 楼shelanbor(华晓)回复于 2005-11-11 08:43:16 得分 1

同意   zhzhq800204(lazio)   的说法,呵呵!!Top

相关问题

  • 串口通讯,用mscomm
  • 关于串口通讯控件(Mscomm)
  • 串口通讯的问题,MSComm
  • 串口通讯,问题,使用mscomm
  • 怎么添加MSComm(串口通讯)控件?
  • 如何使用MSComm控件来实现串口通讯!~
  • 关用MSCOMM控件串口通讯的问题
  • 求一简单的串口通讯程序。(MSComm)
  • 如何将串口通讯控件(MSCOMM)放入COM中
  • 串口通讯

关键词

  • 串口通讯
  • 数据
  • 转换
  • 接收
  • a05
  • elmscomm
  • mscomm
  • elreceive
  • 缓冲区
  • rthreshold

得分解答快速导航

  • 帖主:closeing
  • cuilei197979
  • zou19820704
  • zhzhq800204
  • TheRule
  • jinhailv
  • zou19820704
  • jinhailv
  • shelanbor

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo