gpt4 book ai didi

linux - 更改运行 Angstrom Linux 的 BeagleBone UART0 的波特率

转载 作者:太空宇宙 更新时间:2023-11-04 09:45:38 26 4
gpt4 key购买 nike

我正在尝试为我的 BeagleBone Rev5 启用类似 Arduino 的串行输出。

据我了解,UART 映射是这样的:UART0 <=>/dev/ttyO0

我正在运行最新的 Angstrom 发行版: http://downloads.angstrom-distribution.org/demo/beaglebone/Angstrom-Cloud9-IDE-GNOME-eglibc-ipk-v2012.12-beaglebone-2013.04.13.img.xz

我通过修改此文件禁用了/dev/ttyO0 上的 Angstrom 默认 getty:

/etc/systemd/system/getty.target.wants/serial-gett@ttyO0.service

(从这个问题中收集:Automatic login on Angstrom Linux)

我注释掉了我认为应该阻止 getty 在该端口上启动的所有内容。完成后,我重新启动了开发板,但无法再通过串行控制台连接,所以这似乎可以正常工作。

但我现在找不到任何关于如何配置 UART 以便传输数据的可靠信息。我仔细查看了所有文档,但所有文档都提到了旧版本的 Angstrom,这些版本似乎并未反射(reflect)最新版本。

例如他们都说要执行这样的命令:

root@beaglebone:~# cat /sys/kernel/debug/omap_mux/uart1_rxd

( http://www.gigamegablog.com/2012/01/22/beaglebone-coding-101-using-the-serial-and-analog-pins/ )

但是当我尝试这样做时,那里什么也没有:

root@beaglebone:/sys/kernel/debug# ls
asoc gpio musb-hdrc.0.auto regulator usb
atmel_mxt_ts hid musb-hdrc.1.auto sched_features wakeup_sources
bdi iio pinctrl suspend_stats
bluetooth kprobes pm_debug tracing
dri memblock pwm ubi
f2fs mmc0 regmap ubifs
root@beaglebone:/sys/kernel/debug#

Angstrom 的最新版本似乎是 2013 年 4 月发布的,比我看到的大多数关于此的博客文章都要新。似乎新版 Angstrom 的功能与旧版不同。有谁知道如何在新版本的 Angstrom/BeagleBone 上实际使用各种硬件?

root@beaglebone:/sys/kernel/debug# uname -a
Linux beaglebone 3.8.6 #1 SMP Sat Apr 13 09:10:52 CEST 2013 armv7l GNU/Linux
root@beaglebone:/sys/kernel/debug#

我希望得到一个具体的答案,但如果我能获得有关新版 Angstrom 的工作原理的任何信息,我会非常满意。

编辑:结果证明我只是不够努力。我将 BeagleBone 插入网络并执行了

opkg update
opkg install python-pyserial

一旦完成,我就可以编写一个小程序,以我想要的任何数据速率通过内置串行/USB 端口 (/dev/ttyO0) 进行转储。

使用 getty for serial disabled 我可以毫无问题地写我想写的东西。如果 getty 重新打开,只要它检测到某事正在以较慢的速度发生,就会中断我的连接。

感谢大家的帮助。我特别感谢关于 re:device tree 什么都没有解决的信息,因为这是我在尝试将 BeagleBone 用于其他项目时将要面对的问题。

最佳答案

您显示的命令与波特率无关,它控制引脚复用。很多单片机的外设功能比I/O管脚多很多,所以I/O管脚需要映射到外设,并不是所有的连接都可以。对于您的情况,您需要将特定的引脚指定为 UART 发送和接收。

我自己没有做过,但我发现了大量文档描述了通过 sysctl 控制 pin muxing,并且 proc 文件系统最近被基于 Device-Tree 的新系统所取代。结果,几乎所有现有的例子都被打破了。更糟糕的是,某些命令甚至可能没有基于设备树的等效命令。

就设置波特率而言,您通常会使用 termios.h 中的 cfsetispeed()cfsetospeed(),如 in the Unix specification 所述.

关于linux - 更改运行 Angstrom Linux 的 BeagleBone UART0 的波特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16659167/

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