首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c#用serialport读数据就死啊怎么处理

2012-10-06 
c#用serialport读数据就死啊,怎么办c#用serialport读数据就死啊,怎么办!不读数据是正常关闭,只要读数就程

c#用serialport读数据就死啊,怎么办
c#用serialport读数据就死啊,怎么办!
不读数据是正常关闭,只要读数就程序就死掉啊,那个帮忙解决下!!!!!!!!!!!!

[解决办法]

C# code
    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        // public System.IO.Ports.SerialPort com = new System.IO.Ports.SerialPort();        private void button1_Click(object sender, EventArgs e)        {            serialPort1.PortName = "COM4";            serialPort1.Open();        }        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)        {            // 获取字节长度            int bytes = serialPort1.BytesToRead;            // 创建字节数组            byte[] buffer = new byte[bytes];            // 读取缓冲区的数据到数组            serialPort1.Read(buffer, 0, bytes);            // 显示读取的数据到数据窗口            [color=#FF0000]this.BeginInvoke[/color](new TextBoxValueAssignDelegate(this.AssignTextBoxValue), new object[] { textBox1, byteToHexStr(buffer) + "\n" });        }        public string byteToHexStr(byte[] bytes)        {            string returnStr = "";            if (bytes != null)            {                for (int i = 0; i < bytes.Length; i++)                {                    returnStr += bytes[i].ToString("X2");                    returnStr += " ";                }            }            return returnStr;        }        private void AssignTextBoxValue(TextBox textBox1, string textBoxValue)        {            textBox1.Text += textBoxValue;        }        private delegate void TextBoxValueAssignDelegate(TextBox textBox1, string textBoxValue);        [color=#FF0000]private void Form1_FormClosing(object sender, FormClosingEventArgs e)        {            serialPort1.Close();        }[/color]    } 

热点排行