麻烦路过高手,写几个串口通信的小例子,刚接触serialPort,需要在机器是调试得通,麻烦注释下
基础点的,越多越好,呵呵!!!!

解决方案 »

  1.   

    C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。 
    C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ? 
    C# 串口操作系列(3) -- 协议篇,二进制协议数据解析 
    C# 串口操作系列(4) -- 协议篇,文本协议数据解析
    C# 串口操作系列(5) -- 通讯库雏形 
      

  2.   

    http://topic.csdn.net/u/20100611/17/b2ff7217-62ab-4e8d-94e3-e79e5e29910f.html
      

  3.   

    第一个 串口打开的时候你是要TRY CATCH的 不然会异常
    第二个 尽量使用READ和WRITE不要用WRITELINE和READLINE,后两个是要读换行符的
    第三个 查看你的串口初始化是否初始化好了
      

  4.   


    如果你只知道编写同步操作代码,就不可能做出专业的产品,而只是知道.net有那些语句而已。
      

  5.   

    我是在wince CE设备仿真器上运行,
    怎么样进行串口通信不是怎么清楚,刚接触也不知道哪里错了
    请路过的高手编一个小例子,在一个窗口中的文本框中输入,按发送按钮就它发送到COM1,在做个文本框框接受刚才发过来的信息,麻烦了???????
      

  6.   

    怎么这段代码就是获取不了发送的数据咧?请高手指点?
    不知道出错在哪里?为什么弹出空?
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.IO.Ports;namespace ff
    {
        public partial class Form1 : Form
        {
            SerialPort port;
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                port = new SerialPort("COM1",9600,Parity.None,8,StopBits.One);
                port.NewLine = "\r\n";
                port.WriteTimeout = 500;
                port.ReadTimeout = 500;
                port.Open();        }        private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    port.WriteLine(this.textBox1.Text);                this.textBox1.Text = "";
                }
                catch {                MessageBox.Show("异常");
                }
            }        private void button2_Click(object sender, EventArgs e)
            {
                try
                {
                    this.textBox1.Text = "";
                   
                    this.textBox1.Text = port.ReadExisting();
                    MessageBox.Show(port.ReadExisting().ToString());
                }
                catch {                MessageBox.Show("异常");
                }
            }
        }
    }
      

  7.   

    接收用dataReceive事件
    二楼的链接里都是经典例子哈
      

  8.   

    其实很简单 你先这样调调看 你把READLINE和WRITELINE用WRITE和READ替换,语法看MSDN,接收的时候:
    sp.ReadTimeout = 500;
    sp.Write(data, 0, data.Length);
    Thread.Sleep(500);
    int BufLen = sp.BytesToRead;
    if (BufLen > 0)
    {
        byte[] receiver = new byte[BufLen];
        sp.Read(receiver, 0, BufLen);
    }
    不用委托是可以的,关键是READLINE和WRITELINE是要有换行符号的,另外读取的时候要有一定的延迟的,Thread.Sleep(输入具体的毫秒数)
      

  9.   

    试过了,没用啊
    我将数据通过SerialPort port发送到com1,在通过port去读数据,怎么就不行了啊,好像这个事件DataReceived没触发啊,我是在同一台电脑做的,是不是有问题啊?通讯是不是要两台电脑啊,不懂哦,初学者?
      

  10.   

    1.如果你是就在电脑上用电脑所带的串口做回路实验,那么要把电脑的串口接受和发送的针脚用跳线连起来,否则就只能发送,但是接受不了
    2.如果使用了DataReceive事件,那么就要考虑多线程问题,它们不是同一线程,当然收不到了