大家好:
      我用C#.NET用API写的PDA串口通讯程序,无校验时发送无问题,但就是带校验位发时,校验位没反应,发送的数据在PC机端串口精灵接收还是无校验的对,改校验位收就不对,请各位高手指点一二

解决方案 »

  1.   

    就是我现在如果要发送带校验位的数据,不是要改变DCB结构嘛,我把那个dcb.parity=2,然后用
    setcommstate();设置,打断点看设置正常,就是发送后用PC机串口精灵 收还是无校验的main.Win32.SetupComm(main.hComm,4096,4096);
    main.Win32.GetCommTimeouts(main.hComm,ref commtimeouts);
    commtimeouts.ReadTotalTimeoutConstant=(int)(ReadTimeout);
    commtimeouts.ReadTotalTimeoutMultiplier=0;
    commtimeouts.WriteTotalTimeoutMultiplier=0;
    commtimeouts.WriteTotalTimeoutConstant=0;
    main.Win32.SetCommTimeouts(main.hComm,ref commtimeouts);
    dcb.DCBlength=Marshal.SizeOf(dcb);
    main.Win32.GetCommState(hComm,ref dcb);
            dcb.BaudRate=Int32.Parse(Port);
    dcb.ByteSize=8;
    if(verify==0){check=0;}
    if(verify==1){check=1;dcb.fParity=0x2000001;}
    if(verify==2){check=2;dcb.fParity=0x2000001;} dcb.Parity=check;
    dcb.StopBits=main.STOPBITS_10;
    main.Win32.SetCommState(hComm,ref dcb);
      

  2.   

    VS2005下有一个SerialPort控件挺好的
      

  3.   

    本来想给你发一个我一直在使用的类的(纯API的),可是CSDN说“请不要发危害我们的言论”,很奇怪!
      

  4.   

    啊? 挪能不能发QQ 我的QQ:358369364
    邮箱:[email protected]