to壁画:
通信已经调试通过了。用得spcomm控件。但LRC校验码不知如何换算,请指点!!!
附上vb的换算程序,望不吝赐教!!。谢谢!
Public Function LRC(str As String) As String
c = 0
l = Len(str)
For c = c + 1 To l
c_data = Mid$(str, c, 2)
d_lrc = d_lrc + Val("&H" + c_data)
c = c + 1
Next c
If d_lrc > &HFF Then
d_lrc = d_lrc Mod &H100
End If
h_lrc = Hex(&HFF - d_lrc + 1)
If Len(h_lrc) > 2 Then
h_lrc = Mid(h_lrc, Len(h_lrc) - 1, 2)
End If
LRC = h_lrc
End Function
感觉是这样的,没有调试,你参考吧。
Function LRC(str: String) : String;
var c :integer;
c_data:integer;
d_lrc:integer;
h_lrc:string;
begin
repeat
d_lrc:=d_lrc+strtoint('$'+copy(tstr,c,2));
c:=c+2;
until c>=length(str);
if d_lrc>0xff then
begin
d_lrc:=d_lrc mod 0x100;
end;
h_lrc:=inttohex(0xff-d_lrc+1,4);
h_lrc:=copy(h_lrc,length(h_lrc-1,2);
LRC:=h_lrc;
end;