串口发十六进制数据char($FD)的问题(10分)

  • 主题发起人 主题发起人 dxwin
  • 开始时间 开始时间
D

dxwin

Unregistered / Unconfirmed
GUEST, unregistred user!
发送的十六进制的数据char($FD)的后面如果加上其他字符如“ab”,发送就会出现乱码:“?b”,这该怎么解决?往串口发送十六进制的数据该如何操作?
 
十六进制的数据就直接按十六进制发送,定义一个byte类型的数组,赋值$FD再发送
 
这个数据命令$FD后还有十六进制的数ab,
chr($FD)+ab
但是我用如下语句mscomm1.output:=char($FD)+'ab',
结果单步运行时查看output的值为:“?b”,不正确
我要往串口发送十六进制的这个命令,语句该如何写?
 
提供给你一个用SPCOMM的例子,大体的意思与mscomm差不多
var
sendbuf:array[1..2] of byte ;
send_str:String ;
begin
sendbuf[1] := $FD ;
send_str := 'ab' ;
Comm1.WriteCommData(@sendbuf[1],1);
Comm1.WriteCommData(Pchar(send_str),2) ;
end ;
如果十六进制的数据与字符串要连续发送的话,我建议你还是分开发送
 
后面的‘ab’不是字符串,也是十六进制的数
 
‘发送的十六进制的数据char($FD)的后面如果加上其他字符如“ab”,发送就会出现乱码’???
ab不是字符串,你也写'ab'?
 
不是字符串还可以是十六进制数据啊,真晕
 
我原来做VB时用过mscomm,里面有个数据发送类型,二进制和字符,你可以选择二进制方式,然后设置一个发送数组Byte类型,将要发送的数据放进去(包括你的FD命令)发送之
 
可是在delphi里mscomm的output不能发送数组类型的数据,编译时错误如下:
[Error] Unit1.pas(178): Incompatible types: 'OleVariant' and 'Array'
这个问题该如何解决?
 
你可以选择二进制方式
 
二进制方式只是inputmode啊,我现在是发送有问题
delphi里mscomm的output不能发送数组类型的数据,编译时错误如下:
[Error] Unit1.pas(178): Incompatible types: 'OleVariant' and 'Array'
这个问题该如何解决?在vb里是没有问题的
 
哪个mscomm我也用过,现在也存在不能正确接收发送2进值的情况,我觉得是设置的不好,而不是不行。还有个问题,我想问一下,delphi中有没有2进制的表示符呢,就像16进制的表示符$一样。
 
mscomm在delphi和vb里是不一样的,mscomm这个问题解决不了
没办法今天换了个控件用了turbopower
 
为什么发了一文章(青年报上的),账号封了就不开放?妈的!有这么严重吗?
 
delphi里mscomm的output不能发送数组类型的数据,编译时错误如下:
[Error] Unit1.pas(178): Incompatible types: 'OleVariant' and 'Array'
这个问题该如何解决?在vb里是没有问题的
 
后退
顶部