|

楼主
发表于 2015-1-18 02:30:39
|
显示全部楼层
关键的接收代码(双击SPCOMM控件的ReceiveData事件):- procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
- BufferLength: Word);
- var
- checksum:byte;
- number:byte;
- begin
- setlength(receive_data,BufferLength); // 根据接收的长度,设置数组大小
- receive_data := Buffer; // 取得数据
- checksum := 0;
- for number:=0 to (bufferlength -2) do checksum:=checksum + receive_data[number]; // 计算校验和
- if (checksum = receive_data[bufferlength -1]) then // 校验和合法,则进行接收后的处理
- begin
- case receive_data[3] of
- $00:
- begin
- BitBtn3.Glyph.LoadFromFile(green_dark_file); // 下一行的绿色LED 灭
- BitBtn4.Glyph.LoadFromFile(blue_dark_file); // 下一行的蓝色LED 灭
- end;
- $01:
- begin
- BitBtn3.Glyph.LoadFromFile(green_light_file); // 下一行的绿色LED亮
- BitBtn4.Glyph.LoadFromFile(blue_dark_file); // 下一行的蓝色LED 灭
- end;
- $02:
- begin
- BitBtn3.Glyph.LoadFromFile(green_dark_file); // 下一行的绿色LED 灭
- BitBtn4.Glyph.LoadFromFile(blue_light_file); // 下一行的蓝色LED 亮
- end;
- $03:
- begin
- BitBtn3.Glyph.LoadFromFile(green_light_file); // 下一行的绿色LED亮
- BitBtn4.Glyph.LoadFromFile(blue_light_file); // 下一行的蓝色LED 亮
- end;
- end;
- end;
- setlength(receive_data,0); // 释放资源
- end;
复制代码 这里接收后的处理仅是作为例证。
绿色LED 灭,蓝色LED 灭
绿色LED亮,蓝色LED 灭
绿色LED 灭,蓝色LED 亮
绿色LED亮,蓝色LED 亮
到此,串行通信的Lazarus代码解析完毕,Turbo51学习笔记系列亦宣布结束。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|