MFC release发布后,在其他没有VC环境的机子上不能打开串口,
if(m_MSComm.GetPortOpen())//如果串口是打开的,则行关闭串口m_MSComm.SetPortOpen(FALSE);m_MSComm.SetCo...
if(m_MSComm.GetPortOpen()) //如果串口是打开的,则行关闭串口
m_MSComm.SetPortOpen(FALSE);
m_MSComm.SetCommPort(1); //选择COM1
m_MSComm.SetInBufferSize(1024); //接收缓冲区
m_MSComm.SetOutBufferSize(1024); //发送缓冲区
m_MSComm.SetInputLen(0); //设置当前接收区数据长度为0,表示全部读取
m_MSComm.SetInputMode(1); //以二进制方式读写数据
m_MSComm.SetRThreshold(24); //接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件
m_MSComm.SetSettings("9600,n,8,1"); //波特率:9600,无检验位,8个数据位,1个停止位
if(!m_MSComm.GetPortOpen()) //如果串口没有打开则打开
{
m_MSComm.SetPortOpen(TRUE); //打开串口
}
else
AfxMessageBox("打开串品失败!");
在本机上调试和运行都是正确的,发布release后也是正确的,在没有vc的机子运行发布版本,会显示弹出对话框(打开串品失败!");串口没打开,请问怎么解决,是什么原因 展开
m_MSComm.SetPortOpen(FALSE);
m_MSComm.SetCommPort(1); //选择COM1
m_MSComm.SetInBufferSize(1024); //接收缓冲区
m_MSComm.SetOutBufferSize(1024); //发送缓冲区
m_MSComm.SetInputLen(0); //设置当前接收区数据长度为0,表示全部读取
m_MSComm.SetInputMode(1); //以二进制方式读写数据
m_MSComm.SetRThreshold(24); //接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件
m_MSComm.SetSettings("9600,n,8,1"); //波特率:9600,无检验位,8个数据位,1个停止位
if(!m_MSComm.GetPortOpen()) //如果串口没有打开则打开
{
m_MSComm.SetPortOpen(TRUE); //打开串口
}
else
AfxMessageBox("打开串品失败!");
在本机上调试和运行都是正确的,发布release后也是正确的,在没有vc的机子运行发布版本,会显示弹出对话框(打开串品失败!");串口没打开,请问怎么解决,是什么原因 展开
1个回答
2013-07-23
展开全部
我没用VC写过串口通信程序,但我觉得你这里要关闭已打开的串口,检测是否打开和执行关闭串口时应该要指定串口号吧?是不是应该把“m_MSComm.SetCommPort(1); //选择COM1”这一句提前到最前面呀?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询