社区
VFP
帖子详情
请教VFP串口发送数据问题
JK9481
2010-05-27 03:06:09
有一串字符 6000ff60 通过MSCOMM方式,发送不成功,请高手指点:
thisform.olecontrol1.settings='9600,n,8,1'
thisform.olecontrol1.portopen=.t.
Thisform.olecontrol1.Output=CREATEBINARY('6000ff60')
...全文
265
23
打赏
收藏
请教VFP串口发送数据问题
有一串字符 6000ff60 通过MSCOMM方式,发送不成功,请高手指点: thisform.olecontrol1.settings='9600,n,8,1' thisform.olecontrol1.portopen=.t. Thisform.olecontrol1.Output=CREATEBINARY('6000ff60')
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
十豆三
2010-05-28
打赏
举报
回复
0h 表示二进制数据
0x 表示十六进制数据
你的 Olecontrl 控件,只接收二进制数据,如果不加 0h,他会自动转换成二进制数据,那样接收后还需要转换回来,所以加上 0h,控件认为是二进制数据,不用转换了,即达到了你的要求。
JK9481
2010-05-28
打赏
举报
回复
为什么前面要加 0H呀??
JK9481
2010-05-28
打赏
举报
回复
为什么关面要加 0H 呀 ??
JK9481
2010-05-28
打赏
举报
回复
谢谢,十豆三和都市夜猫,不加引号已经OK,电脑另一端也接收OK
现在想知道为什么6000FF60前面要加 0H,谢谢
十豆三
2010-05-28
打赏
举报
回复
[Quote=引用 8 楼 jk9481 的回复:]
感谢十豆三的回复,再次请教:
我也可以这样发送:
A1='6000ff60'
Thisform.olecontrol1.Output=A1
未用CREATEBINARY( ) 函数转换,接收到的数据仍然是363030303066663630
我如果发送这串数据 363030303066663630 接收到的又是另一串数据了 3336333033303330363636363336……
[/Quote]
再不行,就把接收到的再转换回来吧。转换代码参考7楼
JK9481
2010-05-28
打赏
举报
回复
OK,不加引号也行
A1=0h6000ff60
Thisform.olecontrol1.Output=A1
但为什么前面要加,0H
十豆三
2010-05-28
打赏
举报
回复
[Quote=引用 11 楼 jk9481 的回复:]
我是这样试的:
A1='0h6000ff60' &&加了一个引号
Thisform.olecontrol1.Output=A1
电脑另一端接收到的数据是: 6F68363030306666363
[/Quote]
不要加引号。你用的是VFP9.0吗?如果不是推荐用VFP9.0
JK9481
2010-05-28
打赏
举报
回复
我再用这种试试 A1 = chr(0x60)+chr(0)+chr(0xff)+chr(0x60)
JK9481
2010-05-28
打赏
举报
回复
我不加 引号过不了
JK9481
2010-05-28
打赏
举报
回复
我就是 VFP9
都市夜猫
2010-05-28
打赏
举报
回复
加引号意义就变了
vfp6 可能不支持 0h6000ff60 这种写法,需要 vfp9
vfp6 的话,这样试试:
A1 = chr(0x60)+chr(0)+chr(0xff)+chr(0x60)
JK9481
2010-05-28
打赏
举报
回复
我是这样试的:
A1='0h6000ff60' &&加了一个引号
Thisform.olecontrol1.Output=A1
电脑另一端接收到的数据是: 6F68363030306666363
JK9481
2010-05-28
打赏
举报
回复
好,马上试
都市夜猫
2010-05-28
打赏
举报
回复
试试:
A1=0h6000ff60
Thisform.olecontrol1.Output=A1
JK9481
2010-05-28
打赏
举报
回复
感谢十豆三的回复,再次请教:
我也可以这样发送:
A1='6000ff60'
Thisform.olecontrol1.Output=A1
未用CREATEBINARY( ) 函数转换,接收到的数据仍然是363030303066663630
我如果发送这串数据 363030303066663630 接收到的又是另一串数据了 3336333033303330363636363336333
十豆三
2010-05-28
打赏
举报
回复
如果要将接收到的数据还原
变量=Rtrim(Cast(0h3630303066663630 As Char(50)))
或
变量=Cast(0h3630303066663630 As Varchar(50))
十豆三
2010-05-28
打赏
举报
回复
Thisform.olecontrol1.Output=CREATEBINARY('6000ff60')
这是你的代码
这个函数 CREATEBINARY( ) 函数 的作用
将 Visual FoxPro 字符型数据转换为二进制字符型数据。您在向 ActiveX 控件或 OLE对象传递数据时需要使用二进制字符型数据。
也就是说是你转成 你的olecontrol1控件能够认识的二进制字符型数据,才发送成功的,因为你不转换,olecontrol1控制不识别,所以发送也就不成功。
你实际发的就是 363030303066663630,所以得到的肯定也是这个363030303066663630,一点没错。
JK9481
2010-05-28
打赏
举报
回复
哦,懂了,谢谢,非常感谢
JK9481
2010-05-27
打赏
举报
回复
也就是VFP是以那种格式发送的,为什么接收端接收过来是 显示的这种数据:363030303066663630
JK9481
2010-05-27
打赏
举报
回复
哦,谢谢十豆三
再次请教:
发送: 6000ff60
接收: 0h3630303066663630
想问一个问题: VFP是那种方式发送成 0h3630303066663630 这样的字符串的?
我现在就是发送 6000ff60 给一个控制端,控制端不认识这个?
加载更多回复(3)
VFP
利用MsComm32控件接收
串口
(COM)数据示列
在Visual FoxPro(
VFP
)中,开发与硬件设备交互的应用程序时,常常需要通过串行通信接口(COM)来接收或
发送数据
。MsComm32控件是Microsoft提供的一种通用串行通信控件,它使得程序员能方便地在
VFP
中实现
串口
通信...
VFP
编的五子棋游戏
作为一种4GL(第四代语言)编程语言,
VFP
以其易学易用和强大的数据处理能力而受到广大开发者青睐。 当我们提到"
VFP
编的五子棋游戏",我们关注的是如何利用
VFP
的图形用户界面(GUI)设计能力和其集成的数据处理功能...
arm-linux-gcc-4.5.1-v6-
vfp
-20101103
标题“arm-linux-gcc-4.5.1-v6-
vfp
-20101103”指的是一款特定版本的ARM交叉编译工具链,由友善之臂公司提供。这个工具链主要用于将源代码编译为适用于ARM架构处理器,特别是ARM11内核的二进制代码。日期“20101103”...
62.[开源][安卓]FFmpeg-Android-master
62.[开源][安卓]FFmpeg-Android-master 为Android neon、armv7、
vfp
、armv6及用于Android的VPlayer构建FFmpeg。
VFP
串口
通讯难倒9527,猫猫刚显身手,惨败于kiss轻轻一招
发送数据
=chr(&a1)+chr(&a2)+chr(&a3) 9527很高兴地说,有返回啦。 猫猫帮助了别人,甚是高兴。 未曾料到佛山的kiss直接说,这代码写得一堆废话。 一句a=0h010400000008F1CC 搞定。 猫猫惨败,高
VFP
2,748
社区成员
29,138
社区内容
发帖
与我相关
我的任务
VFP
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
复制链接
扫一扫
分享
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章