问题标签 [baud-rate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
945 浏览

windows - 如何在 Windows 中获取 COM 端口的 base_baud 频率

是否有一个 Windows 调用来获取波特基频率,就像 linux 中的这个。

0 投票
2 回答
5367 浏览

delphi - 在Delphi中找到串口设置

嗨,我需要找到串行端口的波特率和其他设置,在网上查看,看起来我应该使用GetCommConfig,这将返回一个 TCommConfig 记录,其中包含我认为是我需要的数据。问题是我写的函数返回了错误的值。

下面的代码看起来可以正常工作,但波特率始终为 1200,在 Windows 设备管理器中查看(并更改端口设置)是错误的。

我试过这样称呼它:

前 4 个有效但返回 1200,第 5 个无效并返回 0

单步执行代码,前 4 个总是命中Result := CommConfig; ,所以 GetCommConfig 正在重新调整有效代码,所以我一定遗漏了一些东西。

我尝试了其他一些事情,例如设置 dcb 记录的长度,但结果都相同,波特率为 1200。

有谁知道我哪里出错了?

0 投票
3 回答
23628 浏览

c# - 如何以编程方式在 C# 中查找所有可用的波特率(serialPort 类)

有没有办法通过 C# 找出特定系统支持的所有可用波特率?这可以通过设备管理器-->端口获得,但我想以编程方式列出这些。

0 投票
3 回答
1247 浏览

c++ - How to Set Baud Rate 28800 Using DCB Structure

Previously I was using CBR_9600 when communicating with 9600 baud devices. But there does not seem to be a CBR_28800 setting. Is it possible to set the baud rate using the DCB structure of 28800?

0 投票
4 回答
3979 浏览

.net - 如何将波特率设置为 10400

是否可以将波特率设置为 10400?(使用.Net)

0 投票
2 回答
3175 浏览

c# - C# SerialPort - 混合具有不同波特率的端口时出现问题

我想通过串行接口连接两台设备,但它们的连接不兼容。为了解决这个问题,我将它们都连接到我的 PC 上,并且我正在开发一个 C# 程序,它将 COM 端口 X 上的流量路由到 COM 端口 Y,反之亦然。

该程序连接到两个 COM 端口。在数据接收事件处理程序中,我读入传入数据并将其写入另一个 COM 端口。为此,我有以下代码:

只要传出 COM 端口以高于传入 COM 端口的波特率运行,该代码就可以正常工作。如果传入的 COM 端口比传出的 COM 端口快,我开始丢失数据。我不得不像这样更正代码:

我不明白为什么我需要那个修复。我是 C# 新手(这是我的第一个程序),所以我想知道我是否缺少一些东西。SerialPort 默认为 2048 字节的写入缓冲区,我的命令少于 10 个字节。写缓冲区应该能够缓冲数据,直到可以将其写入较慢的 COM 端口。

总之,我在 COM X 上接收数据并将数据写入 COM Y。COM X 以比 COM Y 更快的波特率连接。为什么写缓冲区中的缓冲不能处理这种差异?为什么我似乎需要等待写缓冲区耗尽以避免丢失数据?

谢谢!

* 更新 *

如前所述,此代码很容易在大量和/或快速传入数据传输时遇到溢出情况。我应该写更多关于我的数据流的内容。我期望在 10 Hz 时有 < 10 个字节的命令(具有 < 10 个字节的响应)。此外,我看到第一个命令失败。

因此,虽然我知道这段代码无法扩展并且不是最优的,但我想知道为什么 2-4K 读/写缓冲区甚至无法处理第一个命令。我想知道是否存在写入单字节数据的错误或使用我不理解的事件处理程序的错误。谢谢。

* 更新 *

下面是一个失败的例子:

假设我的命令是四个字节:0x01 0x02 0x3 0x4。COM X 上的设备发送命令。我可以看到 C# 程序接收四个字节并将它们发送到 COM Y 上的设备。COM Y 上的设备接收两个字节:0x01 0x03。我知道 COM Y 上的设备是可靠的,所以我想知道这两个字节是如何被丢弃的。

顺便说一句,有人可以告诉我是否最好只回复带有评论的答案,或者我是否应该继续编辑原始问题?哪个更有帮助?

0 投票
1 回答
2637 浏览

c - 在C中的Linux中清除串行端口的数据?

我正在使用代码测试发送和接收程序

main() 函数如下:

lib.h 包含读取和写入代码,如下所示:

在 C 中解析和读取数据帧?

并得到了问题:

为了使用串口进行测试,我使用 socat ( https://help.ubuntu.com/community/VirtualSerialPort ) 在 Linux 上创建了一对串口并使用这些端口测试我的程序。

程序第一次发送数据,程序接收数据就ok了。但是,如果我再次读取甚至将新数据重新写入串口,返回数据始终为空,直到我停止虚拟串口并重新启动它,然后写入和读取数据都可以,但仍然,只有一度。

(在实际情况下,发送部分将由另一个设备完成,我只是负责从串口读取数据。我编写这两个部分只是为了测试我的读取代码。)

有没有人有任何想法?

0 投票
4 回答
6638 浏览

c# - C# .Net Serial DataReceived 事件响应对于高速数据来说太慢了

我在 VS2008 express 中设置了一个基于表单的程序的 SerialDataReceivedEventHandler。我的串口设置如下:

115200, 8N1

启用 Dtr 和 Rts

ReceivedBytesThreshold = 1

我有一个通过蓝牙、USB 转串口连接的设备。超级终端以任何数据速率接收数据都很好。数据以 22 字节长的数据包定期发送。该设备具有可调节的数据发送速率。在 10-20Hz 的低数据速率下,下面的代码运行良好,没有问题。但是,当我将数据速率提高到 25Hz 以上时,一个呼叫开始接收多个数据包。我的意思是每个传入的数据包都应该有一个事件触发器。使用更高的输出速率,我在调用事件时立即测试了缓冲区大小(BytesToRead 命令),然后缓冲区中有多个数据包。我认为事件触发得很慢,当它到达代码时,更多的包已经到达缓冲区。我做的一项测试是查看每秒触发事件的次数。在 10Hz 时,我得到了 10 个事件触发器,太棒了。在 100Hz 时,我得到了 40 个事件触发器,并不好。我的数据速率目标是可以接受 100Hz,首选 200Hz,最佳 300Hz。这应该可以工作,因为即使在 300Hz 下,也只有 52800bps,不到设置的 115200 波特率的一半。有什么我在看的吗?

0 投票
3 回答
1976 浏览

php - PHP以奇怪的波特率串行

我正在尝试使用 PHP 将文本发送到 LED 标志,以便我可以向它发送支持票号。标志本身就是一件作品;它来自 eBay,制作很差,几乎没有文档。在摆弄了一段时间之后,我能够弄清楚它期望的东西被发送到它的方式,并且波特率为 28800。我已经知道如何使用 PHP 与这样的东西进行通信,但我不知道知道如何将波特率更改为非标准的。我尝试了其他波特率,但无法使其正常工作。

0 投票
2 回答
1270 浏览

serial-port - 如何以特定波特率“cat”文件?

我正在使用 uCsim 对 SDCC 项目进行单元测试。

在 uCsim/S51 中,您可以通过以下方式模拟串行线路流量

或者

在后一种形式中,数据会立即发送到模拟器,这会导致大量帧丢失。因此,不要在普通文件中给出测试数据,而是使用管道:

现在,如何控制“cat”实用程序的输出波特率?或者是否有其他实用程序可以用来以特定速率输出位?