CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  控件

用vb开发串口通讯

楼主xxyan_35(Ak47)2006-03-01 01:02:39 在 VB / 控件 提问

通讯协议  
   
  1.通讯格式:  
  通讯波特率为9600bps,数据格式为:9600波特率,1位起始位,8位数据位,无校验位,1位停止位,共10位。  
   
  起始位为低电平,逻辑值0,停止位和空闲位为高电平,逻辑值1。  
  数据字符格式:起始位+数据+停止位+空闲位   其中空闲位位数不定    
   
  发送格式:  
  每字节数据采用低位在前,高位在后的异步传输方式:  
         
  2.数据帧格式:  
  开始码   器件地址码   长度码   数据块   校验码       共6字节  
   
  开始码     --   1字节,规定为“AAH”。  
  器件地址码     --   1字节,表示目标器件的地址,规定“11H”表示PC,“22H”表示单片机。  
  长度码     --   数据块的字节数(1字节16进制数)。  
  数据块     --   2字节,对电磁阀的动作命令+动作次数。动作命令有启动和停止。  
      启动电磁阀:1字节,规定为“BBH”;停止电磁阀:1字节,规定为“CCH”;启动停止次数:1字节BCD码,范围为1~9。  
  校验码       --   从开始码(包括开始码)到校验码前的所有字节的异或和(1字节16进制数)。  
   
  数据帧发送格式:  
  数据帧采用低字节在前,高字节在后的异步传输方式,字节之间可以随机插入任意长的空闲位:  
                后  
  ---------  
  用MsComm控件该怎么发送数据及接收数据?  
   
  因本人没有做过类似的东西。望高手解答。  
  问题点数:100、回复次数:9Top

1 楼Modest(塞北雪貂)·(偶最欣赏楼主的分)回复于 2006-03-01 10:15:56 得分 5

我也知之甚少,帮你顶一下。Top

2 楼qkaibo(艾夏)回复于 2006-03-01 13:03:15 得分 10

mscomm.settings="9600,n,8,1"  
  mscomm.comport   =   1  
  mscomm.open  
   
  dim   a()     as   byte  
   
  redim   a(5)  
   
  a(0)=&HAA  
  a(1)=&H22  
  a(2)=&HXX  
  a(3)=&HXX       动作命令  
  a(4)  
  a(5)=&H         校验  
  mscomm.output   =   a  
   
  有问题联系QQ   17310603Top

3 楼lc_mtt(柠檬把大飞猪裤子一脱...被大飞猪投诉了)回复于 2006-03-01 13:40:59 得分 5

找一本VB开发串口通信的书,基本有你需要的东西Top

4 楼Nowish(看我能忍耐多久)回复于 2006-03-06 22:28:27 得分 5

dim   a   as   variantTop

5 楼ZOU_SEAFARER(颓废程序员^_^)回复于 2006-03-07 08:36:32 得分 5

MSDN上面有详细的介绍!Top

6 楼celevantis(三藏)回复于 2006-03-07 08:43:22 得分 5

这个有难度么?  
   
  首先在工程中加入一个MsComm控件  
  关闭串口  
  初始化setting(默认即可)  
  选择串口  
  打开串口  
   
  发送指令  
   
  在Oncomm事件中接收单片机返回的信息  
  用Input读取  
   
  校验是LRC校验,网上有现成的代码模块  
   
  Top

7 楼of123()回复于 2006-03-07 08:54:48 得分 50

dim   a(5)   as   byte  
  dim   i   as   integer  
   
  a(0)   =   &Haa  
  a(1)   =   &H11  
  a(2)   =   2  
  a(3)   =   &Hbb     '假定启动  
  a(4)   =   1  
   
  a(5)   =   0  
  for   i   =   0   to   4  
          a(5)   =   a(5)   xor   a(i)  
  next   i  
   
  mscomm1.settings="9600,n,8,1"  
  mscomm1.comport   =   1  
  mscomm1.open   =   true  
  mscomm1.output   =   a  
   
  ......  
   
   
  Top

8 楼efengxu(易风)回复于 2006-03-07 09:31:15 得分 15

你把通讯协议都写出来难道要让我们给你把代买写好啊?这个主要是对mscomm控件的使用,我都用这个3年了,你要尝试自己写代码调试才能自己积累经验,用个一段时间你就会发现很简单的!  
  我们可以带你入门,但还是要自己去研究的!Top

9 楼xxyan_35(Ak47)回复于 2006-03-11 18:38:06 得分 0

多谢上面各位了。  
      问题已经解决了。    
      因前段时间太忙了。Top

相关问题

  • 用delphi开发串口通讯程序,使用spcomm组件
  • 使用VB作串口通讯的问题?
  • 串口通讯,用mscomm
  • 谁用 MSCOMM 和 Delphi 开发过串口通讯程序------在线等待!!!!
  • 用vb.net在WinCE.net下开发串口通讯,请问怎么实现。
  • 用VB怎么连接在两个电脑间用串口通讯.
  • 请教VB串口通讯读数据
  • VB里面串口通讯出错
  • 用builder开发的串口通讯中怎么实现十六进制的数据传送呢?
  • 用C#开发通过串口与工业设备通讯,大家有什么好的串口通讯代码?

关键词

  • 数据
  • 控件
  • 通讯
  • 校验
  • mscomm
  • 格式
  • 空闲
  • 串口
  • 停止
  • 器件

得分解答快速导航

  • 帖主:xxyan_35
  • Modest
  • qkaibo
  • lc_mtt
  • Nowish
  • ZOU_SEAFARER
  • celevantis
  • of123
  • efengxu

相关链接

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

广告也精彩

反馈

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