C#串口控制脚踏开关采集视频图像

mlhy20060406 2013-01-10 11:14:09
为什么在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事件代码没执行。
...全文
596 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
t282018847 2013-08-22
  • 打赏
  • 举报
回复
System.IO.Ports.SerialPort port = new System.IO.Ports.SerialPort("COM1", 9600, Parity.None, 8, StopBits.One); 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(); 结果这些事件都不能触发,是哪儿设置不对吗?
  • 打赏
  • 举报
回复
给完整代码看看呗。
mlhy20060406 2013-01-12
  • 打赏
  • 举报
回复
没人回答,自己顶一下

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧