我用vs 2005 做winform 串口通讯 有两个串口 要发送和接收好多数据  不知道怎么写 想用SerialPort 类来写 但是不知道从哪下手 改怎么写 
private SerialPort SpCom1 = new SpCom("COM1", 19200, Parity.None, 8, StopBits.One);private SerialPort SpCom2 = new SpCom("COM2", 19200, Parity.None, 8, StopBits.One);希望能给点思路 和 方法 谢谢各位  在线等! 

解决方案 »

  1.   

    你先准备两台电脑,用串口线连接,串口通讯不支持本机对发的。
    MSDN有示例代码,很容易看懂,都不知道你要发些什么,所以你还是自己看吧。
      

  2.   

    初始化后,就调用Open方法打开串口,然后调用Write或者WriteLine方法向串口写入数据。另一台电脑也必须调用Open方法打开串口,当然,如果Open晚了点,之前向串口写入的数据将收不到。另一台电脑上设置DataReceived事件来接收数据。如果要验证数据接收完整性,发送方每发送一部分数据,等待对方回应,看对方是否收到了同样多的数据,如果没有回应则重发。
      

  3.   

    我只知道这些简单的皮毛 没有真正开发过项目 我想写一个SerialPort 类 不是有好多的命令吗 读和写就写函数 在需要时掉函数 
      

  4.   

    可以去查一下MSDN了,是个学习的好机会,唉,我怎么没有这样的好事情。。压力使人进步。。
      

  5.   

    SerialPort类不是现成的吗?怎么你要自己重写它?
    SerialPort类的方法不会用吗?手里有MSDN查下不就行了吗?别告诉我你一个人搞项目连MSDN都不会用,那可不行的。
      

  6.   

    嘿嘿.... 我知道了 我查一下吧 还没笨到不会用msdn 的 嘿嘿 心急把这东西都给忘了 
      

  7.   


    没必要那么麻烦搞好多台电脑的
    其实串口可以自己对自己发的
    把自己的3,5口连起来,这样你发啥就收到啥SerialPort我没用过,之前都是用mscom的,SerialPort类应该也有接受到数据的事件吧
    串口麻烦的地方就是接收到一个byte就会触发一次事件
    如果你的串口数据包有自己的自定义协议,你就不应该每次都触发事件,而是在协议数据包完整之后再触发
    另外一个问题就是检测传输过程中的中断,基本上可以根据波特率和传输距离计算出来传输一个字节的时间
    如果超过几倍这个时间还没收到下一个字节,则认为发送完成或者串口中断串口通信基本上就这些东西了
      

  8.   

    一台电脑也可以调试,需要有2个COM口,然后将线的一端拆了重新接下,即将原来的发送和接收线路对掉就可以了。
    在程序中要注意字符串编码的问题。
      

  9.   

    用SerialPort类的话,接收数据的DataReceive事件触发有些问题,事件在辅线程运行,以前搞过一阵子 但那个事件怎么都触发不了,郁闷死了,有哪位知道的说下
      

  10.   

    用SerialPort类, 请参考以下连接的实例:
    http://hi.csdn.net/link.php?url=http://community.csdn.net%2F
      

  11.   

    现在的电脑都很省的,能给你一个COM1口已经很不错了,有的电脑特别是服务器,一个COM口都不给你。
      

  12.   

    你代码都没有怎么说,多半是因为你串口没有打开,随便拖了个SerialPort控件到窗口里就设置事件了。
      

  13.   

    你把MSDN上的列子跟着做做大概就明白了,.net的SerialPort类还是封装得非常好的。
    我前段时间做过一个短信猫的模块,这里面不好理解的无非就是数据的异步性,不过可以用dataReceiving事件嘛
      

  14.   


    上面说错了
    对于9针的COM口,第2针发送数据,第3针接受数据
    所以把2针和3针连起来,就形成了一个回路
    这个COM口就自己发自己收了
      

  15.   

    参考:http://baike.baidu.com/view/69108.htm
      

  16.   

    有用C#  搞modbus RTU 这块的吗?
      

  17.   

    好像站内有c#的资源。我也是从站内找的。现在已经全部搞定了。pc的RS232能和设备通讯上了。收发都没问题。有需要留个邮箱。
      

  18.   

    我也正弄
    SerialPort s,
                    s.Close();
                    s.PortName = "COM1";
                    s.BaudRate = 9600;
                    s.DataBits = 8;
                    s.StopBits = (StopBits)Enum.Parse(typeof(StopBits ),"1");
                    s.Parity = (Parity)Enum.Parse(typeof(Parity), "None");                        s.Open();
                            s.Write(sends);                        s.Read(buffer, 0, buffer.Length);
    呵呵