通信的协议是这样的,1个起始位,8个数据位,1个寻址/数据判别位,1个停止位,共11位,数据采用16进制
我想知道怎样处理“1个寻址/数据判别位”,怎样设置端口的属性?奇偶校验位怎样设定?

解决方案 »

  1.   

    感谢您使用微软产品。 根据我的经验,RS232的通信的协议是由EIA颁布的。其中并没有提到“1个寻址/数据判别位”。波特率、数据位、奇偶校验位、停止位等的设置可以用SetCommState()和SetCommMask()函数进行设定。更具体的说明和源码请参考下面这篇文档: The program performs communications using the functions OpenFile, ReadFile, SetCommState, SetCommMask, WaitCommEvent, WriteFile, and CloseFile.http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcsample98/html/vcsmpserialsampleforcommunicationsdemonstration.asp- 微软全球技术中心 技术支持 本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。 
      

  2.   

    example:
    DCB dcb;
    BOOL bSuccess;
    首先打开串口m_hCom;
    bSuccess=GetCommState(m_hCom,&dcb);
    dcb.BaudRate=CBR_9600;
    dcb.ByteSize=NOPARITY;
    dcb.Parity=ONESTOPBIT;
    dcb.StopBits=8;
    bSuccess=SetCommState(m_hCom,&dcb);
    返回true表示成功
      

  3.   

    example:
    DCB dcb;
    BOOL bSuccess;
    首先打开串口m_hCom;
    bSuccess=GetCommState(m_hCom,&dcb);
    dcb.BaudRate=CBR_9600;
    dcb.ByteSize=NOPARITY;
    dcb.Parity=ONESTOPBIT;
    dcb.StopBits=8;
    bSuccess=SetCommState(m_hCom,&dcb);
    返回true表示成功