VC++串口通信中怎么将串口收到的数据保存到文件中
2013-04-19
展开全部
在OnComm事件中作如下处理:
LONG CSCRDlg::OnCommunicate(WPARAM ch, LPARAM port)
{
if(port==1) //COM1接收到数据
{
RXData[chnum] = ch;//RXData[] 全局char变量
chnum++; //接收到的字符个数
if(chnum==41) //接收到n个后进行保存处理
{
CFile file;
CFileException e;
int error=0;
if(!file.Open(defaultpath,CFile::modeCreate|CFile::typeBinary|CFile::modeWrite,&e))
MessageBox("保存文件时出错,不能保存数据","BJ2948A",MB_ICONERROR);
else
{
TRY
{
file.Write(&RXData,sizeof(N));
}
CATCH(CFileException,e)
{
if(e->m_cause!=CFileException::none)
{
error=1;
MessageBox("保存文件时出错","BJ2948A警告",MB_ICONERROR);
}
}
END_CATCH
if(error==0)
MessageBox("文件已保存!","BJ2948A提示",MB_ICONINFORMATION);
}
file.Close();
}
}
}
建议你看一下,龚建伟编的那本串口的书,他是编串口调试助手的那人,有很多例子不错。
还有,vckbase上的代码库里也有很多关于串口的例子,建议你看看!
LONG CSCRDlg::OnCommunicate(WPARAM ch, LPARAM port)
{
if(port==1) //COM1接收到数据
{
RXData[chnum] = ch;//RXData[] 全局char变量
chnum++; //接收到的字符个数
if(chnum==41) //接收到n个后进行保存处理
{
CFile file;
CFileException e;
int error=0;
if(!file.Open(defaultpath,CFile::modeCreate|CFile::typeBinary|CFile::modeWrite,&e))
MessageBox("保存文件时出错,不能保存数据","BJ2948A",MB_ICONERROR);
else
{
TRY
{
file.Write(&RXData,sizeof(N));
}
CATCH(CFileException,e)
{
if(e->m_cause!=CFileException::none)
{
error=1;
MessageBox("保存文件时出错","BJ2948A警告",MB_ICONERROR);
}
}
END_CATCH
if(error==0)
MessageBox("文件已保存!","BJ2948A提示",MB_ICONINFORMATION);
}
file.Close();
}
}
}
建议你看一下,龚建伟编的那本串口的书,他是编串口调试助手的那人,有很多例子不错。
还有,vckbase上的代码库里也有很多关于串口的例子,建议你看看!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询