2011-10-13 125 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