使用MSCOMM控件如何向串口发送大于80的数据!(100分)

  • 主题发起人 主题发起人 jiexianjin
  • 开始时间 开始时间
J

jiexianjin

Unregistered / Unconfirmed
GUEST, unregistred user!
使用MSCOMM控件如何向串口发送大于80的数据!
MSCOMM.Output:=chr($81) 为什么不行???
那位大哥能帮帮小弟啊!
我将会感激不禁!!
 
你找一个属性,我忘了,
找这个属性有什么字符或二进制的,就改成这样
 
設mscomm發送糊弄為 binary, 應該就可以!
 
记得属性了是
InputMode
 
我改过了!
InputMode:=1 - comInputModeBinary
但那只是接受模式,改了为"1 - comInputModeBinary"也不行
这个属性只是改控件的接受模式!
如果我发了大于80的数据受到的居然是00,那是因为大于80的数据超出了8位!
现在我不知道如何解决!!!
 
设成文本方式, 如果发送$80,则需要转成相应的ascii字符 chr($80)发送
这样试试?
 
Dim b() As Byte
MyComm.Output = b
在VB下正常。
 
发送chr($80)是可以,但是一但超过$80就不可以,比如说发chr($81),接收到的居然不是81而是00,这是为什么??
 
参看一下这个贴子吧
http://www.delphibbs.com/delphibbs/dispq.asp?lid=769642
 
我现在不是收不到$81,而是发不出去$81!
改如何解决!!
 
chr($81)//是不行的,可能是这函数的问题.
我一般是用BYTE发送
var
a:array[0..1] of byte;
begin
a[0]:=$81;//这些数据你可以用BYTE('A')强行把字符转成BYTE
a[1]:=$82;
MyComm.Output = A

 
procedure TForm1.Button3Click(Sender: TObject);
var
a : array[1..3] of byte;
begin
i := chr($8)+chr($1);
a[1] := $81;
MSComm1.Output := A;

end;
楼上的那位大侠!
可是我这样写,Delphi7.0为什么会报错
错误为:incompatible types: 'olevariant'and 'array'
是不是我的MSCOMM控件的属性没有设置好?
 
var
temp: array of Byte;
i: Integer;
begin
SetLength(temp, 3);
for i := 0 to 2 do
temp := 129+i;//129=$81
msc.Output := temp;
 
我忘了MSCOMM不支持array[0..1] of byte;
但支持array of Byte;
SetLength(temp, 3);和array[0..2] of byte;等价

 
非常感谢楼上的那位大侠!!
我的QQ号码是67437676,有空聊聊!
我对呢崇拜的五体投地!!
 
谢谢!给呢加上100分
 
后退
顶部