关于串口的数据的读写(100分)

  • 主题发起人 主题发起人 liuguilg
  • 开始时间 开始时间
L

liuguilg

Unregistered / Unconfirmed
GUEST, unregistred user!
这个是我的一个程序,自己初学,不知道这样是否可以;希望各位老师指点
单片机需要连续传入2个'S',才允发送数据;每次传送16个字符

采集数据按钮
procedure TForm1.开始Button1Click(Sender: TObject);
begin

MSComm1.CommPort:=1;
If MSComm1.PortOpen=false then

MSComm1.PortOpen:=true;
MSComm1.RThreshold:=16;
//每次传送16个字符
mscomm1.Settings:='9600,n,8,1';
end;


procedure TForm1.MSComm1Comm(Sender: TObject);
var mbyte:byte;
begin

单片机需要连续传入2个'S',才允发送数据;
这里是直接写'S',可以不;
mbyte := $53;
//这个是'S' 的16进制
mscomm1.output:= mbyte;
mbyte := $53;

mscomm1.output:= mbyte;
//这里我就是想单片机就发数据上来,是否是这样?
if mscomm1.InBufferCount<16 then
//每次传送16个字符,这样写可以不;传上的数
据是16进制还是2进制,还是直接就是字符串?
exit;
mscomm1.Settings:='9600,n,8,1';
mscomm1.RThreshold:=16;
str := mscomm1.Input;
Memo1.Lines.Add(str);
end;
 
天天写串口程序
不同控件,不同写法
我们不用控件,用自己的类
但方法是相同的
(1)连接串口(指定串口,波特率,是否要校验等等)
(2)根据单片机协议组织数据包
(3)写串口
(4)返回成功发送字节
(5)断开连接串口
 
小弟只是初学串口,连基本的运用还不清楚,想向各位老师请教一下串口的运用
 
硬件公司一般都有DLL。只要用接口函数
 
发送数据不要写在MSComm1Comm里面就可以了
 
后退
顶部