C# SerialPort串口ReadTimeout 超时异常。“System.TimeoutException”

一、简介
系统采用之前的系统:

相关的链接为

https://blog.csdn.net/u011854789/article/details/51895014

https://blog.csdn.net/weixinhum/article/details/53684151

http://www.cnblogs.com/Traveller-Lee/p/6940221.html(主要参考)

(一)WPF工程做上位机与彩屏(或单片机)进行串口通信、解决彩屏(或单片机)只能发送信息不能接受信息问题。

我是在上位机的接收彩屏的信息状态下,收到异常信息:

“System.TimeoutException”类型的未经处理的异常在 System.dll 中发生   其他信息: 操作已超时。
二、超时原因及其解决办法
        超时原因,是因为使用了SerialPort.ReadTimeout 方法和 SerialPortObj.ReadLine()方法。其中,SerialPort.ReadTimeout方法是设定读取的时间间隔。此外, SerialPortObj.ReadLine()表示读取接收缓存区的字节,如未在SerialPort.ReadTimeout设定的时间间隔内收到信息,则抛出异常。

       那么,SerialPort为什么要自带这些方法呢?是多余了吗?显然不是,它是有着其他用途的。我们往后再讨论SerialPort.ReadTimeout 方法和 SerialPort.ReadLine()方法的应用场景。

         现在,我们回过头来解决正常的就接收问题,我只要能够任何时间段、任何连接状态下,只要能够正常接收东西即可。我采用的方法是

    总之,我们在这里采用超时方法ReadLine()。附上代码,该代码已经能够与大彩屏正常收发。

MainWindow.xaml:

        Icon="PortChat.ico"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="PortChat" Height="500" Width="800">
   
       
       
       
       
       
   

 
   
       
           
           
           
       

       
       

你可能感兴趣的:(c#,串口)