我用SerialPort定义串口,在DataReceive事件中处理接收到的数据时只能收到8个字节.不知道这是为什么.
如:发送abcdefghijk 结果好像是触发了两次DataReceive事件 最后收到的数据是 ijk
想了好长时间还是不明白,请各位大侠帮忙!
using System.IO;
using System.IO.Ports;
namespace 串口练习
{
    public partial class Form1 : Form
    {
        delegate void setText(string text);
        SerialPort serial1 = new SerialPort();
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            serial1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(in_data);
            serial1.PortName = "COM1";
            serial1.BaudRate = 9600;
            serial1.DataBits = 8;
            serial1.StopBits = StopBits.One;
            serial1.Parity = Parity.None;
            serial1.Open();
        }        private void in_data(object sender, SerialDataReceivedEventArgs e)
        {
            string text1 = "";
            ASCIIEncoding d = new ASCIIEncoding();
            int i = serial1.BytesToRead;
            byte[] c = new byte[i];
            serial1.Read(c, 0, i);
            text1 = d.GetString(c);
            if (textBox1.InvokeRequired)
            {
                setText f = new setText(setListText);
                textBox1.Invoke(f, new object[] { text1 });
            }
            else
            {
                textBox1.Text = text1;
            }
        }
        private void setListText(string text)
        {
            textBox1.Text = text;
        }
    }
}