我使用 subprocess.Popen(..)
从 python 调用 C 子进程
在可执行文件中,使用 CreateFile(...)
打开 COM 端口以与串行设备进行通信。 .
是否可以使用 pyserial 打开 python 中已有的串行端口并将一些“文件句柄”传递给可执行文件?
至少我可以将 stdin、stdout 和 stderr 作为文件描述符 (int) 或文件对象传递。但我不知道如何将 Serial 对象转换为上述选项之一。也许根本不可能,但我还是想问......
该问题应是与以下内容相关的解决方法 USB VCP connection fails occasionally 因为反复打开和关闭COM端口数千次后失败。可执行文件被经常调用(每次都使用其他参数用于测试目的),但没有必要每次都重新打开 COM 端口。
当然用CreateFile()
解决问题会更好,但我花了几天时间才找到问题,最后得出的结论是,它已经不在我手中了......
最佳答案
我找到了一种解决方法,即使用管道将串行输出重定向到 python。 现在可以工作了。
关于python - 我可以将串行对象转换为文件描述符并将其传递给 C 程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49766933/