我的winform的串口是在主窗口中建立的,现在要用子窗口进行串口的收发,我把发送的函数做成了public,单步跟踪了一下,到serialport.write的时候就提示错误信息:端口未打开,但是COM1确实被占用了。
应该还是子窗口调用的问题,请大侠们帮我解答一下,谢谢

解决方案 »

  1.   

    发现了一个奇怪的问题,我在主窗口open的窗口,打开子窗口以后就close了
      

  2.   

    我现在重新做了一个SerialPortMgr的类,把串口1到4都定义进来,然后在子窗口去调用,十六进制的数发不出来
      

  3.   

    遇到了一个非常奇怪的问题,我用winform做得软件发十六进制数(比如:AA 05 03 01 10)
    我两台电脑串口相连,发送出来的数据是没有误码的,很准确,应该winform发送这一段代码是没问题的
    然后我用串口调试程序给单片机发这组十六进制数,收发都很正常
    但就是再用winform做得软件发送给单片机就没有响应了
    PS:我的串口是用485分得
      

  4.   

    贴一个十六进制发送的函数吧,其他的都差不多
    public void serialPortWrite(byte target_State, byte target_Row, byte target_Line)
            {
                byte[] serialBuff = new byte[5];
                serialBuff[0] = 0xAA;
                serialBuff[1] = 0x05;
                serialBuff[2] = target_State;
                serialBuff[3] = target_Row;
                serialBuff[4] = target_Line;
                SerialPortMgr.Port1.Write(serialBuff, 0, 5);
                //serialPort1.Write(serialBuff, 0, 5);
            }