我使用嵌入式硬件(TI:Piccolo Control Stick xxx69),它使用 FTDI usb 到串行转换器硬件。
在 PC 上,我有一个简单的 VC++ 应用程序,它尝试通过虚拟 COM 端口(VCOM:通常是 COM7)与硬件通信。
我能够正确连接到端口。
我能够将数据从应用程序/PC 发送到硬件并且正确接收。(所以,PC上的Tx工作正常),应用程序首先使用
createfile(... ... ...)
API打开连接,然后使用writefile(.. ... ..)
windows apis直接写入端口。令人惊讶的是,我无法从串行端口读取应用程序。当我调用
readfile(... ... ...)
api 时,它返回状态为 TRUE 但读取了零字节。我尝试使用显示内核 api 的 API 监控软件,Ntreadfile(... ... ...)
返回错误为STATUS_TIMEOUT" [0x00000102]
. 令人惊讶的是,尽管数据在线,但写入有效,但读取无效。
数据在线,因为当我使用普通的超级终端软件时,我能够正确地从控制器读取数据并且它是可见的。[在控制器端,没关系,因为我们可以在超级终端上看到数据。
我不是 Windows 程序员,因为我处理的是微控制器。因此,在解决这个问题方面提供一些帮助将是非常有帮助的。
此致,
-瓦伦
这是一个参考