为什么在serialPort1_PinChanged事件中设置timer2.Enable=true,timer2_Tick事件内容不执行呢?哪位老大能给解释解释呢?
在serialPort1_PinChanged事件中设置断点发现time2.Enable已经为true,就是timer_Tick事件内容不执行,因为在timer2_Tick事件设置messagebox对话框,就是不见弹出。private void serialPort1_PinChanged(object sender, SerialPinChangedEventArgs e)
{
if (!bInitFinish)
{
return;
}
if (e.EventType == SerialPinChange.CtsChanged)
{
if (bCOMPress)
{
if (!timer2.Enabled)
{
timer2.Interval = 500;
timer2.Enabled = true;
bCOMPress = false;
}
//采集图像函数
//SnapPicture();
}
}
}private void timer2_Tick(object sender, EventArgs e)
{
bCOMPress = true;
timer2.Enabled = false;
MessageBox.Show("11");
}
在串口serialPort_PinChanged事件中,按下一次脚踏开关,会多次触发serialPort_PinChanged事件,所以在serialPort_PinChanged事件中家了一个开关变量bComPress,而bCompress改变就在timer2_tick事件,timer2事件半秒执行一次。第一次按下脚踏开关采集图片可以,再往后按下脚踏开关就不在采集图像,调试发现bCompress始终为false,所以猜测timer2_tick事件代码没执行。
在serialPort1_PinChanged事件中设置断点发现time2.Enable已经为true,就是timer_Tick事件内容不执行,因为在timer2_Tick事件设置messagebox对话框,就是不见弹出。private void serialPort1_PinChanged(object sender, SerialPinChangedEventArgs e)
{
if (!bInitFinish)
{
return;
}
if (e.EventType == SerialPinChange.CtsChanged)
{
if (bCOMPress)
{
if (!timer2.Enabled)
{
timer2.Interval = 500;
timer2.Enabled = true;
bCOMPress = false;
}
//采集图像函数
//SnapPicture();
}
}
}private void timer2_Tick(object sender, EventArgs e)
{
bCOMPress = true;
timer2.Enabled = false;
MessageBox.Show("11");
}
在串口serialPort_PinChanged事件中,按下一次脚踏开关,会多次触发serialPort_PinChanged事件,所以在serialPort_PinChanged事件中家了一个开关变量bComPress,而bCompress改变就在timer2_tick事件,timer2事件半秒执行一次。第一次按下脚踏开关采集图片可以,再往后按下脚踏开关就不在采集图像,调试发现bCompress始终为false,所以猜测timer2_tick事件代码没执行。
port.DataReceived += (port1_DataReceived);//DataReceived事件委托
port.ErrorReceived += new SerialErrorReceivedEventHandler(port1_ErrorReceived);
port.PinChanged += new SerialPinChangedEventHandler(port1_PinChanged);
port.Disposed+=new EventHandler(port_Disposed);
port.Open();
结果这些事件都不能触发,是哪儿设置不对吗?