如何设置UART速度?


12

您应该如何设置UART的波特率

额外的问题:RPi提供哪些波特率?

编辑:自从史蒂夫的答案阅读后,我发现有两个可用的UART。

小型UART的最高工作频率为32Mbaud,但缓冲区很小,因此需要大量CPU才能跟上。

还有一个功能更全的UART,具有更大的缓冲区,我还没有找到它的最小/最大速度。


您是否要在运行时设置波特率,与其他设备接口或在启动时设置波特率,以便可以通过其串行端口登录到Pi?
恶意

@Malvineous,启动时间还可以,但是运行时也很有用。我有兴趣与其他设备通话。
约翰·拉鲁伊

Answers:


9

根据Farnell的《快速入门指南》,默认波特率是:115200。关于UART设置和功能的相当详细的讨论可以在这篇博客文章Raspberry Pi串行端口上找到。可以在博客文章“ 为高速串行UART通信设置我的Raspberry Pi”中找到更具体的实现细节/使用串口的挑战。

您没有提到正在运行哪个发行版,但是假设您正在运行Debian,则可以通过执行以下操作来设置波特率:

请注意,Raspberry Pi将UART用于控制台消息(包括启动消息)和getty,因此您可以通过串行登录。要将此串行端口用于自己的用途,您将需要禁用这些服务。

要更改控制台的波特率,请使用所需的波特率编辑/boot/cmdline.txt以替换115200(请注意,这全都是一行)。

dwc_otg.lpm_enable = 0 console = ttyAMA0,115200 kgdboc = ttyAMA0,115200 console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 rootwait

然后编辑/ etc / inittab来更改盖蒂的波特率(您应该找到如下所示的行,波特率为115200,将其更改为所需的波特率)

2:23:respawn:/ sbin / getty -L ttyAMA0 115200 vt100

并且,请记住注意引脚电压,以免损坏Pi。

其他参考:

http://www.andremiller.net/content/raspberry-pi-and-arduino-via-gpio-uart


3

该线程具有针对任意(非标准)波特率的解决方案:https : //stackoverflow.com/questions/12646324/how-to-set-a-custom-baud-rate-on-linux/21960358

首先进行POSIX操作,然后设置自定义速度,可以在Raspberry Pi的内置UART上正常工作,以获得250k的波特率。因此,除了POSIX标准费率之外,您几乎可以拥有16M的任何整数因子,最高可达至少1M(对于非常高速的设备,http://fw.hardijzer.nl/?p = 138)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.