对于串口的初始化如下
if(m_ctlComm1.GetPortOpen())
m_ctlComm1.SetPortOpen(FALSE); m_ctlComm1.SetCommPort(1);
m_ctlComm1.SetInBufferSize(512);
m_ctlComm1.SetInBufferCount(0);
m_ctlComm1.SetOutBufferSize(1024);
m_ctlComm1.SetOutBufferCount(0);
m_ctlComm1.SetSettings("38400,E,8,1");
m_ctlComm1.SetInputMode(1);
if(!m_ctlComm1.GetPortOpen())
{ m_ctlComm1.SetPortOpen(TRUE);
AfxMessageBox("serial port opened"); }
else
AfxMessageBox("cannot open serial port1");
m_ctlComm1.SetInputLen(0);
m_ctlComm1.SetRThreshold(8);
m_ctlComm1.GetInput(); 在oncomm中,写入代码
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len,k;
BYTE data[256];
if(m_ctlComm1.GetCommEvent()==2)
{ variant_inp=m_ctlComm1.GetInput();
safearray_inp=variant_inp; len=safearray_inp.GetOneDimSize(); for(k=0;k<len;k++)
safearray_inp.GetElement(&k,data1+k);当用串口助手发送15个16进制数据时,调试发现len=8;按照前面的设定应该是len=15才对,
特请教诸位。
if(m_ctlComm1.GetPortOpen())
m_ctlComm1.SetPortOpen(FALSE); m_ctlComm1.SetCommPort(1);
m_ctlComm1.SetInBufferSize(512);
m_ctlComm1.SetInBufferCount(0);
m_ctlComm1.SetOutBufferSize(1024);
m_ctlComm1.SetOutBufferCount(0);
m_ctlComm1.SetSettings("38400,E,8,1");
m_ctlComm1.SetInputMode(1);
if(!m_ctlComm1.GetPortOpen())
{ m_ctlComm1.SetPortOpen(TRUE);
AfxMessageBox("serial port opened"); }
else
AfxMessageBox("cannot open serial port1");
m_ctlComm1.SetInputLen(0);
m_ctlComm1.SetRThreshold(8);
m_ctlComm1.GetInput(); 在oncomm中,写入代码
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len,k;
BYTE data[256];
if(m_ctlComm1.GetCommEvent()==2)
{ variant_inp=m_ctlComm1.GetInput();
safearray_inp=variant_inp; len=safearray_inp.GetOneDimSize(); for(k=0;k<len;k++)
safearray_inp.GetElement(&k,data1+k);当用串口助手发送15个16进制数据时,调试发现len=8;按照前面的设定应该是len=15才对,
特请教诸位。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货