串口的可变波特率可以吗?

发布于 2024-12-06 06:20:11 字数 73 浏览 1 评论 0原文

波特率通常设置为指定值之一,如 9600、56k 等。 是否可以选择其他值,例如 123456 波特?它是一个数字参数,为什么不呢?

The baudrate is normally set to one of the specified values, like 9600, 56k and so on.
Is it possible to select another value, like 123456 Baud? Its an numerical parameter, so why not?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦幻的心爱 2024-12-13 06:20:11

通信模块的时钟通常来源于系统时钟。
这个系统时钟可以用特定的数字来划分,比如2,4,8..
这就是为什么您只能达到特定的波特率。

因为您正在谈论异步协议,所以时钟不会在线传输。

上述所有内容,导致业界决定可接受的波特率列表

,但是,如果您的两个通信模块支持特殊波特率(例如 17800),您可以使用它。

The clock of the communication module is usually derived from the system clock.
this system clock can be devided by specific numbers , like 2,4,8..
that's why you can reach only to specific baudrates.

Because you are talking on asynchronous protocol , clock is not transmitted on lines.

all of the above , cause the industry to decide on list of acceptable baudrates

BUT , if your two communication modules support special baudrate like 17800 you can work with it.

蓝戈者 2024-12-13 06:20:11

通常,串行适配器被设计为仅在某些“标准”比特率下运行 - 50、110、150、300、600、1200、2400、4800、9600、14400、19200、28800 等。在实践中,实现了许多适配器部分在软件中并且可以运行任何速率(在其计数器的范围内),但是(事实上​​的)标准并不要求您可以指定此类任意速率。

Generally a serial adapter is designed to only operate at certain "standard" bit rates -- 50, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, etc. In practice many adapters are implemented partially in software and can run any rate (within the range of their counters), but the (de-facto) standard doesn't require that you can specify such arbitrary rates.

千と千尋 2024-12-13 06:20:11

在 Windows 下,您可以使用 SetCommState 设置串行端口的波特率,该波特率采用 设备控制块结构作为参数。该结构的 BaudRate 元素用于设置波特率,可以是常量值,例如 CBR_4800,也可以是您自己指定的值,例如 4801。任何值是否有效取决于硬件,即是否使用 UART 或 SIO。使用允许您指定的波特率。我使用这些东西已经有一段时间了,但波特率可能必须是其他硬件提供的输入时钟速率的倍数,这样某些速率可能无法工作。请注意,我的经验涉及 RS232,而不是 RS485,但我相信使用相同的 SDK。

Under Windows you set the baud rate of a serial port using SetCommState which takes a device control block structure as a parameter. The BaudRate element of this structure is used to set the baud rate and can either be a constant value,e.g. CBR_4800, or your own specified value, e.g. 4801. Whether any value works is hardware dependent, i.e. whether or not the UART or SIO in use allows your specific baud rate. It's a while since I've worked with these things, but it is possible the baud rate must be a multiple of an input clock rate provided by some other piece of hardware, such that certain rates may not work. Note that my experience relates to RS232, as opposed to RS485, but I believe the same SDKs are used.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文