第一份工作!帮帮我吧 点击:2220 | 回复:12



曾杏雪

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 3回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2005年7月01日
发表于:2005-07-01 10:27:00
楼主
第一份工作!帮帮我吧 通讯协议是:rs232,9针、主动发送、通信方式:全双工,异步传输格式、形式:EIA-RS-232C波特率:600bps-19200bps、8位数据位,1位停止位,无奇偶校验位、编码:ASCII 码   数据格式,22位   | | |,| | |,| | |,|数据位8位| | C| M|CR|LF|      根据这个我用vb做了通讯程序,但是数据读出后的不太会处理,还望高手指教!程序:   Option Explicit   Private strRecbuf As String ' Double   Private Sub Command1_Click()   On Error Resume Next   With MSComm1   .CommPort = 1 '你可以选择你的端口号   .Settings = "9600,n,8,1" '这个可以根据你的要求来改成4800,19200等   .InputLen = 0   .RThreshold = 1   .InputMode = comInputModeText   .InBufferSize = 40   .InputLen = 1   End With   If MSComm1.PortOpen = False Then   MSComm1.PortOpen = True   End If   'Text1.Text = strRecbuf   Command4.Visible = True   Command1.Visible = False      End Sub      Private Sub Command4_Click()    If MSComm1.PortOpen = True Then    MSComm1.PortOpen = False    MSComm1.RThreshold = 0    MSComm1.InBufferCount = 0    Close #1    End If    Command1.Visible = True    Command4.Visible = False   End Sub   Private Sub MSComm1_OnComm()      On Error Resume Next    Select Case MSComm1.CommEvent    Case comEvReceive       MSComm1.InputLen = 1    strRecbuf = strRecbuf + MSComm1.Input       If strRecbuf <> strRecbuf Then    MSComm1.RThreshold = 0    txtRec.SelText = ""    End If    '加上这个    txtRec.Text = Mid(strRecbuf, 7, 9)       Case comEvSend    End Select   'If InStr(strRecbuf, Chr(9)) Then '就是你的LF字符,也许不是chr(10),你自己定就可以了   'strRecbuf = ""   'txtRec.SelText = Chr(9)   'Exit Sub   'End If   If InStr(strRecbuf, Chr(21)) Then   txtRec.Text = CDbl(Mid(strRecbuf, 7, 9)) '这里处理你的数据,你自己看看,那个Mid里面的参数试着改变一下。   strRecbuf = ""   Exit Sub   End If      End Sub   ++++++++++++++++++++++++++++++++++++      ++++++++++++++++++++++++++++++++++++         主要问题:1、数据位总是取不对,读出的数值,每次运行都不同,周期变化5-7次一遍,我用log记录的格式为:    8.23 cm   ust gst 8.23 cm   ust gst 8.23 cm    8.23 cm   ust gst 8.23 cm   ust gst 8.23 cm   。。。。。。   主要问题: 2、只能读取当时点击时得到的数值,发连续工作,就是只能度一次!!!



曾杏雪

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 3回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2005年7月01日
发表于:2005-07-01 14:04:00
1楼
指教一下吧

简单人

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 19回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2006年5月03日
发表于:2006-05-08 01:14:00
2楼
太深 了

xonghanwei

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2006年5月26日
发表于:2006-05-26 14:25:00
3楼
因为接收缓冲的字符有丢,
发送的时候加一点点延时,或者用循环读com接收缓冲.

林湘建

  • 精华:18帖
  • 求助:0帖
  • 帖子:49帖 | 1012回
  • 年度积分:0
  • 历史总积分:1686
  • 注册:2003年4月07日
发表于:2006-05-26 18:32:00
4楼
给你个演示程序参考一下!
 VB Demo程序
http://www.sangrong.com/download/vb_demo.rar

  厦门桑荣科技有限公司
  手 机:13328783071(联通)13950074071(移动) 
  直线电话: 0592-5908790
  技术交流:MSN: lxj7871@tom.com   QQ:17817807

自动化+++

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 94回
  • 年度积分:0
  • 历史总积分:209
  • 注册:2004年5月19日
发表于:2006-05-28 20:18:00
5楼
多看看别人吧

自动化+++

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 94回
  • 年度积分:0
  • 历史总积分:209
  • 注册:2004年5月19日
发表于:2006-05-28 21:48:00
6楼
多看看别人吧

oydwboy

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2004年7月28日
发表于:2006-06-26 15:39:00
7楼
你读的数据最好加上校验码,可以判断读上来数据的有效性

www.cn

  • 精华:0帖
  • 求助:0帖
  • 帖子:48帖 | 1717回
  • 年度积分:0
  • 历史总积分:2433
  • 注册:2006年5月16日
发表于:2006-10-29 16:26:00
8楼
看都看不懂啊

恨水

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 43回
  • 年度积分:0
  • 历史总积分:50
  • 注册:2007年2月07日
发表于:2007-03-19 19:20:00
9楼
http://www.kitsnet.cn/blog/post/138.html

这个软件,你应该有帮助的

love2006

  • 精华:5帖
  • 求助:0帖
  • 帖子:209帖 | 1300回
  • 年度积分:23
  • 历史总积分:3382
  • 注册:2006年2月21日
发表于:2007-03-19 19:42:00
10楼
 看都看不懂啊

boccn

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2007年5月23日
发表于:2007-05-23 10:06:00
11楼
试试不用COMM事件驱动,用定时循环读读看.

小义2006

  • 精华:0帖
  • 求助:0帖
  • 帖子:25帖 | 69回
  • 年度积分:0
  • 历史总积分:1149
  • 注册:2005年12月06日
发表于:2007-09-04 22:16:00
12楼
有难度

热门招聘
相关主题

官方公众号

智造工程师