czhaii 发表于 2014-5-10 09:08:42

强大的VC6实现串口数据发送过程延时为什么就那么困难

   新手接触VC 初步会实现了对话框功能的实现,MFC 串口控件通讯的实现。
现在想利用VC MFC串口控件在循环发送模式下能发送一个数据然后
再延时一段时间发送第二个数据,直到数据发送结束。
在C语言或汇编语言中是一件十分简单的事,加入延时函数就可以了。
在MFC 对话框中加入延时函数就不可以呢?
{:shy:}{:shy:}{:shy:}

welcome_cool 发表于 2014-5-10 09:18:20

本帖最后由 welcome_cool 于 2014-5-10 09:21 编辑

另外开一个线程,相当定时中断,在延时期间要人为调用串口接收函数。

68336016 发表于 2014-5-10 09:29:16

放定时器事件里面

czhaii 发表于 2014-5-10 09:31:33

welcome_cool 发表于 2014-5-10 09:18
另外开一个线程,相当定时中断,在延时期间要人为调用串口接收函数。

有没有实例?
你能做出来吗?
线程还不懂。

czhaii 发表于 2014-5-10 09:36:58

68336016 发表于 2014-5-10 09:29
放定时器事件里面

做了一个简单的定时器控制测试的,
只有第二个定时器起作用。
按下Start显示定时器1

按下Stop显示定时器2

实际只显示 定时器2

void CTimetestDlg::OnTimer(UINT nIDEvent)
{
        // TODO: Add your message handler code here and/or call default
        switch (nIDEvent)
        {
        case 1:
                {
                //m_display.SetSel(0,-1);                           //选上所有内容
      m_display.ReplaceSel(" 定时器1");   //显示编辑框2内容
          KillTimer(1);
                }
        case 2:
                {
                m_display.SetSel(0,-1);                           //选上所有内容
      m_display.ReplaceSel("定时器2");   //显示编辑框2内容
      KillTimer(2);
                }
                break;
        }
        CDialog::OnTimer(nIDEvent);
}

void CTimetestDlg::OnClear()
{
        // TODO: Add your control notification handler code here
       m_display.SetSel(0,-1);                           //选上所有内容
   m_display.ReplaceSel("");   //显示编辑框2内容
}

void CTimetestDlg::OnStart()
{
        // TODO: Add your control notification handler code here
        SetTimer(1,3000,NULL);      //等待3秒
   
}

void CTimetestDlg::OnStop()
{
        // TODO: Add your control notification handler code here
    SetTimer(2,5000,NULL);      //等待5秒
       
}

void CTimetestDlg::OnOK()
{
        // TODO: Add extra validation here
       
        CDialog::OnOK();
}

68336016 发表于 2014-5-10 09:47:31



czhaii 发表于 2014-5-10 10:14:01

感谢 两位。
页: [1]
查看完整版本: 强大的VC6实现串口数据发送过程延时为什么就那么困难