本帖最后由 zhangshuqiang123 于 2011-06-20 19:38:26 编辑

解决方案 »

  1.   

    我刚刚做了个串口通 private void send_Click(object sender, EventArgs e)
            {
                byte[] data = ASCIIEncoding.GetEncoding("gb2312").GetBytes(sdtext.Text.ToString());
                if (mycomm.IsOpen)
                {
                    mycomm.Write(data,0,data.Length);
                    mycomm.WriteLine("\r");
                }
            }
             
            //接收
            private void mycomm_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
            {
                int DataLength = mycomm.BytesToRead;//获取接受缓冲区中数据的字节数
                int i = 0;
                StringBuilder strb = new StringBuilder();
                while (i < DataLength)
                {
                    byte[] dbs = new byte[2048];
                    int len = mycomm.Read(dbs,0,2048);//从输入缓冲区中读取2048个字节,并将这些字节写入到dbs[]数组中
                    strb.Append(ASCIIEncoding.GetEncoding("gb2312").GetString(dbs, 0, len));
                    i += len;
                }
                revtext.Text += strb;
            }信程序,
      

  2.   

    我用的是 事件驱动模式,发送事件,把sdtext.Text的文本用gb2312的编码方式转换成字节码;
    接受方,用while处理,把字节码用gb2312的编码方式解码成String字符串,再把字符串显示到revtext.Text 里!
      

  3.   

    C# winform 串口 IO硬件开发,qq:14503184,13910061508
      

  4.   

    请问串口通信字节码是怎么算的呢?      isOpen = false;
                    bytes = new byte[9] { 0, 0x5a, 0x55, 0, 1, 2, 0, 0, 0xb3 };
                    sp.Write(bytes, 0, bytes.Length);
                    sp.Close();