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

📄 aaadlg.cpp

📁 本人调试通过的串口通信程序,对初学者有一定的参考价值
💻 CPP
📖 第 1 页 / 共 4 页
字号:
									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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -