ASC>128问题尚未解决(VB5)

sep 2000-07-16 11:04:00
致谢!尚有问题请教(SEP:ASC>128问题)。
与下位机(机号为M1M2M3)握手规约(不能动了)如:&H: and 6A and A6 and EF and 48 and M1 and M2 and M3 and SUM and ,SUM为前6个字节校验和,机号随机变如"302987",则M1=&H30,M2=&H29, M3=&H87 ,sendd=Chr(&H6A) & Chr(&HA6) & Chr(&HEF) & Chr_(&HEF) & Chr(&H48) & Chr(&H30) &Chr(&H29) & Chr_(&H87),MScomm1.output=sendd & vbCr
下位机接收不到完整命令。问题在,如何解决?

...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sep 2000-08-07
  • 打赏
  • 举报
回复
用字节数组
leslielu 2000-07-17
  • 打赏
  • 举报
回复
别想了,你只能用字节数组,如果你用示波器抓你发送的数字,你会发现他们都被-128,(如果他大于128),我想这个在VB的说明中讲的很详细。
上面的程序你还是只能用我告诉你的方法。
dim a() as byte
dim b
redim a(7)
a(0)=&h6a
a(1)=&ha6
...
a(7)=a(0) and a(1) and a(2)...and a(6)
b=a
mscomm1.output = b
这样一定可以,我这样发过几百个字符都没有错。
而且,也必须这样,你仔细看他的说明。他会告诉你,>128必须用字节数组。
liyang 2000-07-17
  • 打赏
  • 举报
回复
如果你要用字符串传指令(最好还是用byte),把chr改为chrw,最后接到后,用ascw判断。chr只能用于<128,
liyang 2000-07-17
  • 打赏
  • 举报
回复
原因如此:
你用sendd=sendd=Chr(&H6A) & Chr(&HA6) & Chr(&HEF) & Chr_(&HEF) & Chr(&H48) & Chr(&H30) &Chr(&H29) & Chr_(&H87)
然后,你用mid(sendd,2,1)看看,原来是&HA6,现在是0.

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧