串口调试助手上RTS选项的作用?

时间:2022-01-26 01:27:45
请问:

  问题1:我有一台发卡器,上电连接PC机后,打开串口调试助手工具。刷卡后,串口调试助手工具接收不到数据,必须勾选该界面上的RTS选项后,才能够收到数据包。请问:勾选RTS选项,串口调试助手工具软件是有改变串口参数的某个设置,还是向发卡器发了什么数据包?

 如果我要写个接收上位机的软件的话,串口参数该注意哪几项?

我贴几句简单的的代码:各位指导下:
打开串口:
 hCom=CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
   if(INVALID_HANDLE_VALUE==hCom)
   {
   MessageBox("串口打开失败!");
   return 0;
   }
   SetupComm(hCom,1024,1024);
   DCB dcb;
   GetCommState(hCom,&dcb);
   dcb.BaudRate=DWORD(atoi("115200"));
   dcb.ByteSize=8;
   dcb.fBinary=TRUE;
   dcb.fParity=TRUE;
   dcb.StopBits=ONESTOPBIT;
   dcb.Parity=NOPARITY;

if(!SetCommState(hCom,&dcb))
{
AfxMessageBox("设置失败!");
return 0;
}
if (!SetCommMask(hCom,EV_RXCHAR | EV_TXEMPTY))
{
MessageBox("掩码设置失败.","提示");
return 0;
}

读取数据包的代码:

WaitCommEvent(hCom,&dwEvtMask,&toverlapped);
dwResult=WaitForSingleObject(toverlapped.hEvent,100);

if(WAIT_OBJECT_0==dwResult)
{
if(EV_RXCHAR==dwEvtMask)
{

WaitForSingleObject(hmutex,INFINITE);
        DWORD res,factbyte;
        memset(databuffer,0,2000);
        COMSTAT rst;
CString str1;
            int i=0;
        ClearCommError(hCom,&res,&rst);
        roverlapped.hEvent=CreateEvent(NULL,TRUE,FALSE,NULL);
       if(ReadFile(hCom,&databuffer,rst.cbInQue,&factbyte,&roverlapped))
          {


                   }
}


}

3 个解决方案

#1


串口号,端口,波特率

#2


问题已解决!

#3


您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法

#1


串口号,端口,波特率

#2


问题已解决!

#3


您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法