麻烦懂VC++的朋友帮我看一下!!谢谢啦!

来源:百度知道 编辑:UC知道 时间:2024/05/25 18:36:18
void CMainFrame::OnCheck()
{
// TODO: Add your command handler code here
m_MSComm.Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM1);
m_MSComm.SetCommPort(2); //选择通道2
m_MSComm.SetInBufferSize(1024); //接收缓冲区
m_MSComm.SetOutBufferSize(1024); //发送缓冲区
m_MSComm.SetInputLen(0); //当前接收取数据长度为0,即全部读取
m_MSComm.SetInputMode(1); //1为以二进制方式读写数据
m_MSComm.SetRThreshold(5); //接收缓冲区有5个及5个以上的字符时,
//将引发接收数据的OnComm事件

m_MSComm.SetSettings("9600,n,8,1"); //依次为波特率,无校验位,8个数据位,1个停止位

if (!m_MSComm.GetPortOpen())
{
m_MSComm.SetPortOpen(TRUE);
AfxMessageBox("串口状态正常,请继续");
}

else
AfxMessageBox("Open Serial Port Failure!");
m_MSComm.GetInput(); //先预读缓冲区以清除残留数据

//------------------------------------------------------------------------------发送握手信号
//------------------------------------------------------------------------------------------

把以下代码放到Init里面,不要放到OnCheck里
m_MSComm.Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM1);
m_MSComm.SetCommPort(2); //选择通道2
m_MSComm.SetInBufferSize(1024); //接收缓冲区
m_MSComm.SetOutBufferSize(1024); //发送缓冲区
m_MSComm.SetInputLen(0); //当前接收取数据长度为0,即全部读取
m_MSComm.SetInputMode(1); //1为以二进制方式读写数据
m_MSComm.SetRThreshold(5); //接收缓冲区有5个及5个以上的字符时,
//将引发接收数据的OnComm事件

把以下代码放到Init里面,不要放到OnCheck里
m_MSComm.Create(NULL,0,CRect(0,0,0,0),this,IDC_MSCOMM1);
m_MSComm.SetCommPort(2); //选择通道2
m_MSComm.SetInBufferSize(1024); //接收缓冲区
m_MSComm.SetOutBufferSize(1024); //发送缓冲区
m_MSComm.SetInputLen(0); //当前接收取数据长度为0,即全部读取
m_MSComm.SetInputMode(1); //1为以二进制方式读写数据
m_MSComm.SetRThreshold(5); //接收缓冲区有5个及5个以上的字符时,
//将引发接收数据的OnComm事件

m_MSComm.SetSettings("9600,n,8,1"); //依次为波特率,无校验位,8个数据位,1个停止位

if (!m_MSComm.GetPortOpen())
{
m_MSComm.SetPortOpen(TRUE);
AfxMessageBox("串