【发布时间】:2011-10-10 14:13:50
【问题描述】:
我正在尝试通过虚拟 COM 端口与硬件设备通信。主机是PC Windows OS PC。设备以 921600 波特率工作。此代码有效:
DCB 直流电; ... dcb.BaudRate = CBR_115200; SetCommState(hPort, &dcb);一旦我改变波特率:
dcb.BaudRate = 921600;SetCommState 失败,最后一个错误0x57(参数不正确)。这是否意味着 Windows API 会阻止除预定义值之外的任何波特率?或者,可以将虚拟 COM 端口配置为允许此波特率?
虚拟 COM 端口是 CameraLink 连接的一部分。我正在与 CameraLink 板供应商交谈。但我需要知道 Windows 串行通信 API 是否支持自定义波特率。
【问题讨论】:
-
如果这是一个虚拟 COM 端口,通常配置的波特率无关紧要。如果您将利率降低到 9600 或 4800 左右,您是否看到它变慢了?我怀疑它不会。
-
根据我使用 CameraLink 的经验:COM 端口仅用于配置相机,并且应该以标准的低数据速率(通常为 9600 波特)工作。 CameraLink 本身要快得多,但不通过 COM 端口。其他实现是非标准的。 (见the CameraLink specification)
-
@Adrien Plisson:根据 Cameralink 规范,相机和图像采集卡应至少支持 9600 波特。实际上,我正在使用的图像采集卡支持 115200。看起来图像采集卡阻止了我,而不是 Windows。
-
如果你尝试较低的速度,你会得到任何有意义的数据吗?
-
@shawty:当波特率与设备要求不匹配时,通信不起作用。设置不正确的波特率会导致垃圾输入。
标签: windows serial-port baud-rate