我做了一个上位机接收下位机传送数据的程序,下位机是以16进制的方式从串口发出数据,我用的MSCOMM控件来接收,但接收出来的信息是乱码,接收模式随便设成哪种都不行,是不是数据转换上的问题呀,请大侠们指点!最好有详细点!若行马上给分!
解决方案 »
- 求助:关于命令行参数
- ADOQuery如何将Excel数据导入Access数据库?
- 一个关于WideString和PByteArray的问题,请教大家.
- TDatePicker怎么默认显示是当前时间?
- 关于dbgrid问题
- 如何让一个控件(比如button或label)可以在窗体中随意拖动?
- updatesql控件的问题-???
- 在DELPHI中在插入数据时,怎么将当前的数据拷贝到下一个新记录上。在FOXPRO中是用SET CARRY ON 命令,不知在DELPHI中怎么做
- 哈哈。菜鸟一只——CSDN上的专家分、可用分、参与分有什么用的??
- 给出日期,如何知道是这一年的第几周?
- 急急急!!!(50分求串口16进制通信的问题)
- delphi中对单表进行查询,帮我看看应该怎么改!
发布方便。有源码。
收:var
temp: array of byte;
len: integer;
i:Integer;
output:string;
begin
len := mscomm1.buffersizw;
setlength(temp,len);
temp := mscomm1.input;
output:='';
for i:=1 to len do
output:=output+IntToHex(temp[i-1],2);//output就是结果啦!如果是发送的话
先将你要发送的十六进制数赋值到ARRAY OF BYTE这个动态数组
然后发送 mscomm1.output := temp
这样就可以了给分!!!!
mscomm1.inputmode := 1;
procedure readcomm;
var Vdata:Olevariant;
buf:Array of byte;
i:integer;
begin
vdata := comm1.input;
buf := vdata;
for i := low(buf) to high(buf) do
begin
end;
end; 还不会就给个方式,看接给你发点代码吧!