你好,想请教下串口接收问题,为什么有的时候会分成两部分接收,例如我发11个字符,会3+8或4+7
OnOnCommMscomm1(){byte*bytetemp;longi,k;CStringstrtemp1,strtemp2;VARIANTm_input;bytet...
OnOnCommMscomm1()
{ byte *bytetemp;
long i,k;
CString strtemp1,strtemp2;
VARIANT m_input;
byte temp[1024];
byte bytesumcheck; //校验
int intpt;
int nEvent=m_Comm.GetCommEvent();//得到事件
switch(nEvent)
{
case 2://接收数据事件
k=m_Comm.GetInBufferCount();//接收缓冲区字符数
if(k>0)
{
m_input=m_Comm.GetInput();
bytetemp=(byte*) m_input.parray->pvData;
}
这是我的接收开始部分代码,我在k=m_Comm.GetInBufferCount(); 这句代码后面添加AfxMessageBox()函数显示k发现同样的11位,接收有时情况不一样,有时先接3后8,有时先4后7,我是根据接收到的信息解码然后读出圆的坐标,并在view中画出,发现如果不加AfxMessageBox(),就不能画圆,不知问题出在哪里? 展开
{ byte *bytetemp;
long i,k;
CString strtemp1,strtemp2;
VARIANT m_input;
byte temp[1024];
byte bytesumcheck; //校验
int intpt;
int nEvent=m_Comm.GetCommEvent();//得到事件
switch(nEvent)
{
case 2://接收数据事件
k=m_Comm.GetInBufferCount();//接收缓冲区字符数
if(k>0)
{
m_input=m_Comm.GetInput();
bytetemp=(byte*) m_input.parray->pvData;
}
这是我的接收开始部分代码,我在k=m_Comm.GetInBufferCount(); 这句代码后面添加AfxMessageBox()函数显示k发现同样的11位,接收有时情况不一样,有时先接3后8,有时先4后7,我是根据接收到的信息解码然后读出圆的坐标,并在view中画出,发现如果不加AfxMessageBox(),就不能画圆,不知问题出在哪里? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询