aaadlg.cpp

来自「本人调试通过的串口通信程序,对初学者有一定的参考价值」· C++ 代码 · 共 1,356 行 · 第 1/4 页

CPP
1,356
字号
									for(m=0;m<5;m++)
										array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
							
							}

						}
						else
						{
							if(a==0x41)
								flag=1;
								j=0;
						}
						
					
						
						break;
					
					case 14:
						if(flag==1)
						{	
							data14[j++] = a;
								
						if(j==33)
							{	
							 //if(j==18)/////////////CRC校验
								j=0;
								flag=0;
								count=0;
								for(m=0;m<32;m++)
									even(data14[m]);
								if(count%2==0)
									countR=1;
								else
									countR=0;
								if(countR==data14[32])
								{
									k++;
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
									array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
								else
								{
							
									
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X42};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
										array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
							
							}

						}
						else
						{
							if(a==0x41)
								flag=1;
								j=0;
								count=0;
						}
						
					
						
						break;
					case 15:
						if(flag==1)
						{	
							data15[j++] = a;
								
						if(j==33)
							{	
							 //if(j==18)/////////////CRC校验
								j=0;
								flag=0;
								count=0;
								for(m=0;m<32;m++)
									even(data15[m]);
								if(count%2==0)
									countR=1;
								else
									countR=0;
								if(countR==data15[32])
								{
									k++;
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
									array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
								else
								{
							
									
									BYTE TxData[5]={0X55,0x55,0X00,0x00,0X42};// 准备需要发送的命令,放在TxData[]中
									CByteArray array;
									array.RemoveAll();
									array.SetSize(5);
									for(m=0;m<5;m++)
										array.SetAt(m, TxData[m]);
									m_Comm.SetOutput(COleVariant(array)); // 发送数据
								}
							
							}

						}
						else
						{
							if(a==0x41)
								flag=1;
								j=0;
								count=0;
						}
						
					
						
						break;
					default:
						break;

				}
			
		
	

	  
	
		}///接受正确的程序
	
		UpdateData(FALSE);//更新编辑框内容
	
		
	

		
	}	
}

void CAaaDlg::OnButton2() 
{
	// TODO: Add your control notification handler code here
	if( m_Comm.GetPortOpen())
	m_Comm.SetPortOpen(FALSE);//打开串口
	
}

void CAaaDlg::OnSave() 
{
	int i;
// TODO: Add your control notification handler code here
//	for(i=0;i<32;i++)
//		data[i]=data0[i];

	FILE* pFile;
	pFile = fopen("sampling.txt", "w+");

	if(!pFile)
	{
		MessageBox("sampling文件无法打开!");
		return;
	}
//	fprintf(pFile, "%d\n",0);

	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data0[i+1]*256+data0[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data1[i+1]*256+data1[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%d\n",(data2[i+1]*256+data2[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data3[i+1]*256+data3[i])*2.5/65536);

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);

	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data4[i+1]*256+data4[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data5[i+1]*256+data5[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data6[i+1]*256+data6[i])*2.5/65536);

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data7[i+1]*256+data7[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data8[i+1]*256+data8[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data9[i+1]*256+data9[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data10[i+1]*256+data10[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data11[i+1]*256+data11[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data12[i+1]*256+data12[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data13[i+1]*256+data13[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data14[i+1]*256+data14[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}
//	fprintf(pFile, "%d\n",0);
	for(i=0;i<32;i++,i++)
	{
		fprintf(pFile, "%f\n",(data15[i+1]*256+data15[i])*2.5/65536);
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
	}

	fclose(pFile);

}

void CAaaDlg::OnSend() 
{
	// TODO: Add your control notification handler code here
	int i;
	j=0;
	k=0;l=0;
	flag=0;
	BYTE TxData[5]={0X55,0x55,0X00,0x00,0X41};// 准备需要发送的命令,放在TxData[]中
	CByteArray array;
	array.RemoveAll();
	array.SetSize(5);
	for(i=0;i<5;i++)
		array.SetAt(i, TxData[i]);
	m_Comm.SetOutput(COleVariant(array)); // 发送数据

	
}




void CAaaDlg::calccrc(BYTE crcbuf)//CRC	校验
{
	BYTE i;
	crc=crc ^ crcbuf;
	for(i=0;i<8;i++)
	{
		BYTE TT;
		TT=crc&1;
		crc=crc>>1;
		crc=crc&0x7fff;
		if (TT==1)
		crc=crc^0xa001;
		crc=crc&0xffff;
	}


}

void CAaaDlg::even(unsigned char command)
{
	if (command & 0x1)
					count++;
	if (command & 0x2)
					count++;
	if (command & 0x4)
					count++;
	if (command & 0x8)
					count++;
	if (command & 0x10)
					count++;
	if (command & 0x20)
					count++;
	if (command & 0x40)
					count++;
	if (command & 0x80)
					count++;


}

⌨️ 快捷键说明

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