2011-10-13 130 views
1

我写了一个小程序,写在串口上。 我使用SerialPort类(.NET Framework)。当我写入串行端口时,立即发生PortRecieved事件。当我们知道串口具有输入和输出缓冲区时,为什么程序会这么做。写入方法写入输出缓冲区,读取方法从输入缓冲区读取。串口输入输出缓冲区

回答

0

您需要查看DataReceivedThreshold属性。它定义了多少字节将如何在缓冲区中积累烧制DataReceived事件之前,缺省为1

也是这个Dev Center thread见,其中指出有可能是在某些情况下DataReceivedThreshold一些意外行为。

+0

谢谢,但我不知道在触发事件之前缓冲区中会累积多少字节。它可以在1到20个字节之间。但我不明白程序何时写入输出缓冲区为什么事件已经触发。程序写入串口(输出)的一切都像输入一样接收。例如,如果程序在输出上写入“Test”,输入(使用ReadExisting)方法是一样的。为什么? – SilverDeveloper

+0

@SilverDeveloper:我不确定你在问什么。也许你可以发布一些示例代码来澄清你的问题? – ladenedge

+0

好的。第一个问题 - 串口有输入和输出缓冲区。如果程序写入串口它将写入输出缓冲区。如果程序从串口读取,则从输入缓冲区中读取数据。那是对的吗? – SilverDeveloper