WindowsはCOMバッファをフラッシュしません
-
13-11-2019 - |
質問
私のCOM-BUFFERSに関するWindowsからいくつかのかなり奇妙な動作を見ています。
FTDIチップで3 USBシリアルコンバータを使用しています。CreateFile
を使用してCOMポートを開き、それはすべてうまく機能します。3つのポートすべてがボーレートを除いて同じ構成です。2 38400で仕事9600に勤務しています。
ここは奇数部です:
私は9600ポートと38400ポートのうちの1つをうまく書き出すことができます。2番目の38400ポートはデータをバッファリングしているようです。私はハイパーターミナルを使ってこのポートに接続しており、私がすぐに応答を得て「奇妙な」ポートで私のアプリケーションを閉じるとデータを取得することができます...
他の誰かがこれを経験しましたか?どうやってこれを解決しましたか?
解決
これは暗闇の中で一種のショットです...しかし
「奇妙な」接続の両端のフロー制御設定を確認してください。フロー制御が不一致の場合、私はこのような奇妙なことを見ました。ポートを閉じる行為はビットをクリアし、バッファされたデータを流れることができます。
他のヒント
FTDIチップで少し働いていたので、各ポートの詳細なドライバ設定をチェックアウトすることをお勧めします。ドライバは、ハイスループットと低遅延の間で侵害を解消できるように、バッファリングと待ち時間の両方のコントロールをサポートしています。そのため、動作していない設定を確認してください(それらが同じではない場合)。
サイドノートでは、FTDIを使用することによって:■href="http://www.ftdichip.com/support/documents/programguides/d2xx_programmer%27s_guide%28ft_000071%29.pdf" rel="nofollow"> API コムポートの再割り当てなどを追跡する必要はありません。APIは通常のWin32 1と非常に似ていますが、より多くの設定オプションを公開しています。