私は組み込みハードウェア (TI : Piccolo Control Stick xxx69) を使用しており、これは FTDI USB からシリアル コンバータ ハードウェアへの変換を使用しています。
PC には、仮想 COM ポート (VCOM : 通常は COM7) 経由でハードウェアと通信しようとする単純な VC++ アプリケーションがあります。
ポートに正しく接続できます。
アプリケーション/PC からハードウェアにデータを送信でき、正しく受信されます。(したがって、PC 上の Tx は正常に動作しています)、アプリケーションはまず API を使用して接続を開き、
createfile(... ... ...)
次にwritefile(.. ... ..)
Windows API を使用してポートに直接書き込みます。驚いたことに、シリアル ポートからアプリケーションに読み取ることができません。APIを呼び出すと
readfile(... ... ...)
、ステータスが TRUE として返されますが、ゼロバイトが読み取られます。カーネル api を表示する API モニター ソフトウェアを使用してみましたNtreadfile(... ... ...)
が、エラーが返されますSTATUS_TIMEOUT" [0x00000102]
。データがオンラインにあるにもかかわらず、書き込みは機能しますが、読み取りは機能しないため、これは驚くべきことです。
通常のハイパーターミナル ソフトウェアを使用すると、コントローラからデータを正しく読み取ることができ、データが表示されるため、データはオンラインです。【コントローラー側はハイパーターミナルでデータが見えるので大丈夫です。
私はマイクロコントローラーを扱っているため、Windows プログラマーではありません。したがって、この問題を追求するという点で何らかの助けがあれば、非常に役立ちます。
よろしくお願いします、
-ヴァルン
ここに参照があります