gpt4 book ai didi

windows - 自定义波特率

转载 作者:可可西里 更新时间:2023-11-01 13:25:39 38 4
gpt4 key购买 nike

我正在尝试通过虚拟 COM 端口与硬件设备通信。主机是 PC Windows OS PC。设备以 921600 波特率工作。此代码有效:

DCB dcb;...dcb.BaudRate =  CBR_115200;SetCommState(hPort, &dcb);

一旦我改变了波特率:

dcb.BaudRate =  921600;

SetCommState 失败并出现最后一个错误 0x57(参数不正确)。这是否意味着 Windows API 会阻止除预定义值之外的任何波特率?或者,虚拟 COM 端口可以配置为允许此波特率?

虚拟 COM 端口是 CameraLink 连接的一部分。我正在与 CameraLink 板供应商交谈。但我需要知道 Windows 串行通信 API 是否支持自定义波特率。

最佳答案

我刚刚为此快速浏览了 MSDN 文档,这里是关于 DCB 结构中的 BaudRate 属性的内容。

BaudRate 通信设备运行的波特率。该成员可以是实际的波特率值,也可以是以下索引之一。 CBR_110。 CBR_300、CBR_600、CBR_1200、CBR_2400、CBR_4800、CBR_9600、CBR_14400、CBR_19200、CBR_38400、CBR_57600、CBR_115200、CBR_128000、CBR_256000

所以至少在理论上,您应该可以毫无问题地设置您所请求的串口速度。

它还进一步指出有一些组合是无效的(特别是在对 8250 串行芯片进行编程时)

备注当 DCB 结构用于配置 8250 时,以下限制适用于为 ByteSize 和 StopBits 成员指定的值:数据位数必须为 5 到 8 位。使用 5 个数据位和 2 个停止位是无效组合,6、7 或 8 个数据位和 1.5 个停止位也是如此。

这让我想知道您遇到的问题是否是某些组合导致了问题,而不仅仅是设置波特率。

也许您的波特率没问题,但通过选择该波特率,您会使停止位的数量或奇偶校验长度无效,当波特率设置回标准设置时,它会再次生效。

我不知道你处理的硬件,所以我不能说 100% 是这样,我只知道一般的串行端口编程,但就个人而言,我的下一步是将波特率设置为什么然后我需要保持原样,尝试 block 中其他标志的所有不同组合。

可以在此处找到 DCB 结构的官方 MSDN 页面:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363214(v=vs.85).aspx

您可能还会发现一些帮助的 BuildCommDCB 函数:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363143(v=vs.85).aspx

关于windows - 自定义波特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7714060/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com