串口(COM)数据监听

以前没有注意到串口类有个监听的事件,在不知道之前我新开一个线程,用while(true){//一直读取串口数据 一直读取时加了延时,不加的话会很占电脑资源}

下面是监听串口数据的核心代码

//如果不懂可以问我,我博客有我的联系方式
//SerialCommon类地址http://www.luofenming.com/show.aspx?id=ART2017121500002
SerialCommon serial = new SerialCommon();
/// <summary>
/// form1窗体加载事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
    //给串口注册 数据接收事件的方法
    serial.MySerialPort.DataReceived += new SerialDataReceivedEventHandler(ReceivedData);
}
//数据接收方法
public void ReceivedData(object sender, SerialDataReceivedEventArgs e)
{
    byte[] data = serial.ReceiveData(1000);
    //对接收的数据进行处理
    //注意这是异步的,跟主窗体不是同一个线程
}
/// <summary>
/// button1的按钮点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
    serial.InitComm("串口名", 38400, 8, StopBits.One, Parity.None);
    serial.OpenPort();
}


评论

  1. 27.185.21.*2021-09-15 08:33:49
    非常感谢,那这个串口接收事件是不是只要打开了串口,就会开始接收呢?lqwvjehuanhang需要有一个开关控制吗?

  2. 218.66.81.*2021-08-11 07:20:50
    测试2

  3. 218.66.81.*2021-08-11 07:20:38
    测试