| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1745 人关注过本帖
标题:VFP 通过 COM 口接收数据问题
只看楼主 加入收藏
youyaoshuan
Rank: 1
等 级:新手上路
威 望:1
帖 子:33
专家分:5
注 册:2008-12-20
结帖率:50%
收藏
 问题点数:0 回复次数:17 
VFP 通过 COM 口接收数据问题
在网上搜到一段接收COM口的代码:
(2) 在VFP中,建立一个新的表单
(3) 插入标签 (命名为重量)  
(4) 插入文本 (命名为 TEXT1,用来显示重量数据)
(5) 建立 Microsoft Communication Control1 控件 在工具栏中点插入ole容器控件,选择 Microsoft Communication Control 控件(NAME 为 OLECONTRO1)
(6) 设置 commport = 2 (串口2)
(7) 设置 settings = 1200,e,7,2(1200 波特率,偶校验,7 个数据位,1 个停止位)
(8) 设置 Rthreshold = 17 表示当缓冲区中有 17 个数据等待接受时,产生 OnComm
(9) 在表单的 init 事件中写 thisform.olecontrol1.portopen=.t.,
      释放事件中写 thisform.olecontrol1.portopen = .f.  
(10) 在控件 olecontrol1 的 OnComm 事件中写如下程序代码   
      if = 2    && 缓冲区中有 17 个字符等待接受,产生 OnComm 事件   
      dbbl=subs(this.input,1,17)   && 取串口数据   
      thisform.text1.value=subs(dbbl,5,6)  && 取字符串中的重量数据   
      thisform.refresh
      endif
为什么运行的时候是一串数字和问号在TEXT1中循环滚动?怎么才能接收到正确的称重数据,并在TEXT1中显示出来,让TEXT1中的内容和电子称显示屏上显示的数据相同?
搜索更多相关主题的帖子: Microsoft settings 工具栏 波特率 缓冲区 
2014-09-27 21:40
youyaoshuan
Rank: 1
等 级:新手上路
威 望:1
帖 子:33
专家分:5
注 册:2008-12-20
收藏
得分:0 
期待高手帮助
2014-09-27 21:42
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
2014-09-27 21:58
youyaoshuan
Rank: 1
等 级:新手上路
威 望:1
帖 子:33
专家分:5
注 册:2008-12-20
收藏
得分:0 
和这个贴子上的情况不一样
2014-09-28 09:04
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用youyaoshuan在2014-9-28 09:04:12的发言:

和这个贴子上的情况不一样


看似是有关系哦,分析一下这句:“为什么运行的时候是一串数字和问号在TEXT1中循环滚动?”。
TEXT1只能显示可打印文本,否则就有“乱码”现象。
2014-09-28 09:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
thisform.text1.value=subs(dbbl,5,6)  && 取字符串中的重量数据

这个是6字节二进制数格式,它到底是不是你需要的重量,要看对方发送数据的协议是怎样约定的。不要想当然用二进制转换函数。

[ 本帖最后由 TonyDeng 于 2014-9-28 11:31 编辑 ]

授人以渔,不授人以鱼。
2014-09-28 09:51
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
数值用 6 个字节存放很有个性。
2014-09-28 11:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
字节多少还是小事,关键是字节序!

授人以渔,不授人以鱼。
2014-09-28 11:31
wmcwww
Rank: 2
等 级:论坛游民
威 望:1
帖 子:60
专家分:21
注 册:2012-11-2
收藏
得分:0 
太高深了
2014-09-28 14:36
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用TonyDeng在2014-9-28 11:31:42的发言:

字节多少还是小事,关键是字节序!


取出后加多两个空字节,变8字节(64位数值)就可以用现成的二进制转换函数。
2014-09-28 16:19
快速回复:VFP 通过 COM 口接收数据问题
数据加载中...
 
   



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

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