基于MFC串口工具实现的多个txt文件连续发送

在毕设的学习过程中,需要将minst数据集的图片转换成16进制的txt文本,并将其通过串口工具连续发送到FPGA板子中进行预测,基于之前一个博主所实现的串口工具进行部分修改,最终完成了多个txt文档的连续发送及识别。

其中主要修改的部分为自动发送部分的代码,代码主要如下:

void CcommassistDlg::OnBtnAutosend()
{
    // TODO: 在此添加控件通知处理程序代码
    UpdateData(TRUE);
    m_bAutoSend = !m_bAutoSend;// m_bAutoSend
            SetTimer(1, atoi(m_strTimer.GetBuffer(m_strTimer.GetLength())), NULL); //设置定时 
            m_autosend.SetText("停止");
            GetDlgItem(IDC_COMCONTROL)->EnableWindow(false);
            GetDlgItem(IDC_BTN_CLRTX3)->EnableWindow(false);
            GetDlgItem(IDC_BTN_CLRRX3)->EnableWindow(false);
            GetDlgItem(IDC_BTN_HANDSEND)->EnableWindow(false);
            GetDlgItem(IDC_BTN_SELCTFILE)->EnableWindow(false);
            GetDlgItem(IDC_BTN_SENDFILE)->EnableWindow(false);
            CFile file;
            int k = 0;
            int i = 9;
            m_strFile.Empty();
            char FileName[256] = { 0 };
            int count = 0;
            CString strTemp;
            CString   str, sTemp;
            while (k < 1000)
            {
                sprintf_s(FileName, "txt1_1/%d_%d.txt", i, count++);
                
                m_strFilePath = FileName; //得到文件路经 
                FILE* fp;
                char buf[1571];
                memset(buf, 0, sizeof(buf));
                fopen_s(&fp,FileName, "r");
                if (fp != NULL)
                {
                    fread(&buf, sizeof(char), sizeof(buf), fp);
                }
                fclose(fp);
                buf[1570] = '\0';
                int buf_i = 0;
                CString str_i;
                while (buf_i < 1570)
                {
                    str_i.Format("%c", buf[buf_i]);
                    m_strFile += str_i;
                    buf_i++;
                }
                buf_i = 0;
                m_strOut = m_strFile; //文件内容加入发送框变量内    
                UpdateData(false); //更新发送框内容           
                //strTemp = "";
                m_strFile = "";
                OnBtnHandsend();

                k++;

               

               // if (count == 99 && i == 9) break;
                Delay(100);
                OnBtnClrtx();
              /* if (count == 99) {
                    i++;
                    count = 0;
                }*/
                
            }
           // m_bAutoSend = false;
          

}

修改定时器的回调函数Ontimer(),在里面终止定时器:

void CcommassistDlg::OnTimer(UINT_PTR nIDEvent)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    if (nIDEvent == 1)
    {
        
        KillTimer(1);
        m_autosend.SetText("自动发送");
        GetDlgItem(IDC_COMCONTROL)->EnableWindow(true);
        GetDlgItem(IDC_BTN_CLRTX3)->EnableWindow(true);
        GetDlgItem(IDC_BTN_CLRRX3)->EnableWindow(true);
        GetDlgItem(IDC_BTN_HANDSEND)->EnableWindow(true);
        GetDlgItem(IDC_BTN_SELCTFILE)->EnableWindow(true);
        GetDlgItem(IDC_BTN_SENDFILE)->EnableWindow(true);
    }
    else if (nIDEvent == 2)
        return;
    CDialogEx::OnTimer(nIDEvent);
}

下面是发送6000张图片的截图:
在这里插入图片描述
串口工具所使用的链接如下:
添加链接描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值