如何用MSComm1控件读取16进制的串口信息?
1,传输协议:RS232接口,
dcb.BaudRate=9600;
dcb.ByteSize=8;
dcb.Parity=NOPARITY;
dcb.StopBits=TWOSTOPBITS;
2,硬件触发事件定义:
按钮:当按钮按下时触发信号,发送按钮信号给上位机。
数据格式为:十六进制AABBCCDD
AA:统一填CC(保留字段)
BB:等于65表示按下,66表示放开,67表示报警
CC:保留字段。
DD:保留字段。 我在delphi中
procedure TForm1.MSComm1Comm(Sender: TObject);
var
事件中不知道该如果取到类似这样的CC 65 CC DD字符串信息在label上显示?
ReadFile(w_zjm.vg_hcomm,inbuff,cs.cbInQue,nBytesRead,nil);
s:='';
for i:=1 to nbytesread do
begin
s:=s+inttohex(ord(inbuff[i]),2);
end;
label1.caption:=s;
字节转换二来,所以,你只要把字节内容读出来了,管你16进制,10进制,还是8进制
都能处理的啦
就像二楼说的那样,用inttohex转换,就可以啦,要是还不懂,自己写一个
10进制,转16进制的,也就几分钟,就写好了
chr(12*16+12)+chr(6*16+5)+chr(12*16+12)+chr(13*16+13)聪明的你该知道怎么做了吧