110,534
社区成员
发帖
与我相关
我的任务
分享
public void InitForm()
{
pid = 0;
timermain.Enabled = true;
}
public void MainProcess()
{
switch (pid)
{
case 0://初始化
InitForm();
pid = 1;
break;
case 1:
//保存要发送的数据
case 2:
开串口
case 3:
发送
case 4:
haveRead = 0;
endRead = 0;
pid = 6;
break;
case 5:
if (haveRead == 1)
{
if (timer_receive.Enabled == false)
{
timer_receive.Enabled = true;
timer_receive.Start();
}
}
if (endRead == 1)
{
pid = 7;
}
case 7:
ReveivedProcess();//显示
pid = 1;
break;
}
}
private void spt_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
if (haveRead == 1)
{
len = spt.BytesToRead;
spt.Read(receive, offset, len);
endRead = 1;
}
else
{
len = spt.BytesToRead;
spt.Read(receive, offset, len);
offset = offset + len;
haveRead = 1;
endRead = 1;
}
}
private void timer_receive_Tick(object sender, EventArgs e)
{
endRead = 1;
timer_receive.Enabled = false;
}
private void timermain_Tick(object sender, EventArgs e)
{
timermain.Enabled = false;
MainProcess();
timermain.Enabled = true;
}