2011-05-13 191 views
0

我在窗口看到一些非常奇怪的行爲,關於我的COM緩衝區。Windows不會刷新COM緩衝區

我使用3個USB-Serial Converter與FTDI芯片。我用CreateFile打開com端口,它一切正常。除波特率外,所有3個端口都具有相同的配置。在38400和一個2工作在9600

這裏是奇數部分:

我能夠成功地寫出了9600端口和38400端口之一。第二個38400端口似乎在緩衝數據。我用超級終端連接到這個端口,並看到在工作端口上,我立即得到一個響應,並在「怪異」的端口,我只有當我關閉我的應用程序時纔得到數據...

有沒有其他人經歷過這個?你是如何解決這個問題的?

+0

可能重複的[如何清除串行緩衝區?](http://stackoverflow.com/questions/5453205/how-to-clear-serial-buffer) – sehe 2011-05-13 09:30:52

+0

不是重複的 - 這個問題是關於閱讀,而不是寫作。 – MSalters 2011-05-13 12:08:58

回答

0

這是在黑暗中拍攝的......但是。

檢查「奇怪」連接兩端的流量控制設置。當流量控制不匹配時,我見過這樣的奇怪事情。關閉端口的動作會清除這些位並允許緩衝的數據流動。

0

在FTDI芯片上工作了一下之後,我建議您查看每個端口的高級驅動程序設置。該驅動程序支持緩衝和延遲控制,以便讓您在高吞吐量和低延遲之間妥協。因此,檢查工作的設置,並使用相同的設置(如果它們不相同)。

在附註中,通過使用FTDI:自己的API,您不必跟蹤COM端口重新分配等。這個API與普通的Win32非常相似,但是暴露了更多的配置選項。

+0

非常好,但應用程序完成。如果我需要改變任何我可能會使用它的東西。謝謝。 – RedX 2011-05-15 21:20:26