Uafhængige 2022-08-09 18:33 采纳率: 0%
浏览 60
已结题

关于#MFC#的循环发送指令问题,如何解决?

MFC 串口循环发送指令问题
问题描述:
希望点击开始运动,进入OnStart函数以后,电机转动一次,就给传感器发送一次指令,并获取传感器的返回值写入文件中。但是目前发现要等到OnStart函数执行结束后,才给传感器发送指令。也就是m_ctrlComm.put_Output(COleVariant(hexdata0));真正起作用的次数只有1次,请问该怎么改进才能让程序连续发送命令并接收数据?
ps: 去掉for循环后数据收发正常

void CSingle_move_Dlg::OnStart()                //启动运动
{
    //传感器输入值
    CByteArray hexdata0;
    hexdata0.Add(0x77);
    hexdata0.Add(0x04);
    hexdata0.Add(0x00);
    hexdata0.Add(0x04);
    hexdata0.Add(0x08);
    for (int i = 0; i < 10; i++)
    {
        ZAux_Direct_Single_Move(g_handle, m_nAxis, 0.5); //电机运动
        m_ctrlComm.put_Output(COleVariant(hexdata0));  //向串口发送指令
        Sleep(300);
    }
    UpdateData(false); //将变量的变化更新到控件里面
    MessageBox(_T("测试结束!"));
}

  • 写回答

5条回答 默认 最新

  • 玉古云投 2022-08-09 18:57
    关注

    睡眠这里改成Sleep(2000)呢?

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月10日
  • 创建了问题 8月9日