⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 基于单片机基站的串口通讯dlg.cpp

📁 IRF905通过单片机控制IRF905然后通过电脑来控制单片机上驱动的电机实现远程控制
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	for(int j=0;j<10000;j++)
          for(int a=0;a<10000;a++);

	switch(i)
	{
	case 0:
		iPortNew=1;
		PortSet();break;
	case 1:
		iPortNew=2;
		PortSet();break;
	case 2:
	    iPortNew=3;
	    PortSet();break;
	case 3:
	    iPortNew=4;
		PortSet();break;
	}
}

void CMyDlg::OnChangeSendEdit() 
{
	// TODO: If this is a RICHEDIT control, the control will not
	// send this notification unless you override the CDialog::OnInitDialog()
	// function and call CRichEditCtrl().SetEventMask()
	// with the ENM_CHANGE flag ORed into the mask.
	
	// TODO: Add your control notification handler code here
     
}

void CMyDlg::OnSelchangebyte() 
{
	// TODO: Add your control notification handler code here
	int i=m_byte.GetCurSel();
    if(m_mscom.GetPortOpen())
	   m_mscom.SetPortOpen(false);
	switch(i)
	{
	case 0:		
		byte=2;PortSet();break;
	case 1:
		byte=1;PortSet();break;
	}
}

void CMyDlg::OnSelchangeBaudrate() 
{
	// TODO: Add your control notification handler code here
    int i=m_baudrate.GetCurSel();
    if(m_mscom.GetPortOpen())
	   m_mscom.SetPortOpen(false);
	switch(i)
	{
	case 0:		
		Baudrate="300";PortSet();break;
	case 1:
		Baudrate="600";PortSet();break;
    case 2:		
		Baudrate="1200";PortSet();break;
	case 3:
		Baudrate="2400";PortSet();break;
    case 4:		
		Baudrate="4800";PortSet();break;
	case 5:
		Baudrate="9600";PortSet();break;
    case 6:		
		Baudrate="19200";PortSet();break;
	case 7:
		Baudrate="38400";PortSet();break;
    case 8:		
		Baudrate="43000";PortSet();break;
	case 9:
		Baudrate="56000";PortSet();break;
    case 10:		
		Baudrate="57600";PortSet();break;
	case 11:
		Baudrate="115200";PortSet();break;
	}	
}

void CMyDlg::OnSelchangeStop() 
{
	// TODO: Add your control notification handler code here
    int i=m_stop.GetCurSel();
    if(m_mscom.GetPortOpen())
	   m_mscom.SetPortOpen(false);
	switch(i)
	{
	case 0:		
		Stop="1";PortSet();break;
	case 1:
		Stop="2";PortSet();break;
	}	
}

void CMyDlg::OnSelchangeVerification() 
{
	// TODO: Add your control notification handler code here
	int i=m_verification.GetCurSel();
    if(m_mscom.GetPortOpen())
	   m_mscom.SetPortOpen(false);
	switch(i)
	{
	case 0:		
		Verification="n";PortSet();break;
	case 1:
		Verification="o";;PortSet();break;
    case 2:
		Verification="e";;PortSet();break;
	}	
}

void CMyDlg::OnSelchangeFigure() 
{
	// TODO: Add your control notification handler code here
	int i=m_Figure.GetCurSel();
    if(m_mscom.GetPortOpen())
	   m_mscom.SetPortOpen(false);
	switch(i)
	{
	case 0:		
		Figure="6";PortSet();break;
	case 1:
		Figure="7";;PortSet();break;
    case 2:
		Figure="8";;PortSet();break;
	}	
}

char* conver(const CString & str)
{
	
	int len=str.GetLength();
    char * temp=new char[len+1];
	strcpy(temp,str);
	temp[len]='\0';
	return temp;
}

void CMyDlg::OnSave() 
{
	// TODO: Add your control notification handler code here
	CFile file;
	CString tim,input,tim1;
	CStdioFile fileTemp2;
	GetLocalTime(&ttime);
	tim=ultoa(ttime.wYear,nn,10);
	tim+="年";
	tim+=ultoa(ttime.wMonth,nn,10);
	tim+="月";
	tim+=_ultoa(ttime.wDay,nn,10);
	tim+="日";
	tim+=".txt";

    tim1+=ultoa(ttime.wHour,nn,10);
	tim1+="时";
    tim1+=ultoa(ttime.wMinute,nn,10);
	tim1+="分";
    tim1+=ultoa(ttime.wSecond,nn,10);
	tim1+="秒";

    if( !file.Open(tim,CFile::modeWrite))
    {
	    if( !file.Open(tim,CFile::modeCreate|CFile::modeWrite))
		   {
	        MessageBox (_T("打不开文件"));
		    return;
		   }
		else
		{
	    UpdateData(TRUE);
        CString strValue;        
        GetDlgItemText(IDC_RECV_EDIT,strValue);//此处为编辑框的内容
		input+="刘常银制作\r\n接收时间:";
		input+=tim1;
        input+="\r\n接收数据:\r\n";
		input+=strValue;
		input+="\r\n\r\n";				
		char *str=conver(input);
		file.SeekToEnd();
		file.Write(str,strlen(str));
		file.Close();
		}
		
	}
	else{
        UpdateData(TRUE);
        CString strValue;        
        GetDlgItemText(IDC_RECV_EDIT,strValue);//此处为编辑框的内容
		input+="刘常银制作\r\n接收时间:";
		input+=tim1;
        input+="\r\n接收数据:\r\n";
		input+=strValue;
		input+="\r\n\r\n";			
		char *str=conver(input);
		file.SeekToEnd();
		file.Write(str,strlen(str));
		file.Close();
	}
    
	/*
    file.Open(tim,CFile::modeCreate|CFile::modeWrite); 
    CString strValue; 
    GetDlgItemText(IDC_RECV_EDIT,strValue);//此处为编辑框的内容 
    file.Write(strValue,strValue.GetLength()); 
    file.Close();*/

}

HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
	if(pWnd->GetDlgCtrlID()==IDC_Save)   //设置编辑框内字体为红色
	{       pDC->SetBkColor(RGB(200,220,250));//背景颜色
            pDC->SetTextColor(RGB(255,0,0));//红色   
	}  
	// TODO: Return a different brush if the default is not desired
	return hbr;
}



void CMyDlg::OnCancle() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}

void CMyDlg::OnClockwise() //电机1正转
{
  // TODO: Add your control notification handler code here 
  m_send="0";
  Send();
  a[0]=10,a[1]=11,a[2]=16,a[3]=15;
  SetTimer(1,200,NULL);//第一个参数为ID,第二个参数为定时(ms)
}

void CMyDlg::OnReverse() //电机1反转
{
	// TODO: Add your control notification handler code here
  m_send="1";
  KillTimer(1);
  Send();
  a[3]=10,a[2]=11,a[1]=16,a[0]=15;
  SetTimer(1,200,NULL);//第一个参数为ID,第二个参数为定时(ms)
}

void CMyDlg::OnStop() //电机1停止
{
	// TODO: Add your control notification handler code here
  m_send="2";
  Send();
  KillTimer(1);
  
}

void CMyDlg::OnClockwise1()//电机2正转 
{
	// TODO: Add your control notification handler code here
  m_send="4";
  Send();
  b[0]=10,b[1]=11,b[2]=16,b[3]=15;
  SetTimer(2,200,NULL);//第一个参数为ID,第二个参数为定时(ms)	
}

void CMyDlg::OnReverse1()//电机2反转 
{
	// TODO: Add your control notification handler code here
  m_send="5";
  Send();
  KillTimer(2);
  b[3]=10,b[2]=11,b[1]=16,b[0]=15;
  SetTimer(2,200,NULL);//第一个参数为ID,第二个参数为定时(ms)	
}

void CMyDlg::OnStop1()//电机2停止
{
	// TODO: Add your control notification handler code here
  m_send="5";
  Send();
  KillTimer(2);
}

void CMyDlg::OnTimer(UINT nIDEvent)//定时触发 
{
	// TODO: Add your message handler code here and/or call default
	if(nIDEvent==1)
	  {
	   SetMotor1();
      }
   if(nIDEvent==2)
	 {
      SetMotor2();
     }
	CDialog::OnTimer(nIDEvent);      
}

void CMyDlg::SetMotor1()//电机1控制
{		
	m_motor1.SetValue(a[Order1++]);
    if(Order1==4) Order1=0;
 
}

void CMyDlg::SetMotor2()//电机2控制
{
 m_motor2.SetValue(b[Order2++]);
 if(Order2==4) Order2=0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -