簡體   English   中英

更改運行Angstrom Linux的BeagleBone UART0的波特率

[英]Change the baud rate for BeagleBone UART0 running Angstrom Linux

我正在嘗試為我的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

(從這個問題中收集: 在Angstrom Linux上自動登錄

我評論了一切,我相信應該停止getty從該端口開始。 完成后我重新啟動了電路板,無法通過串行控制台連接,因此似乎可以正常工作。

但我現在找不到有關如何配置UART的任何可靠信息,以便我可以傳輸數據。 我已經看了很多,但所有文檔都提到了Angstrom的舊版本,似乎沒有反映最新版本。

例如,他們都說要執行這樣的命令:

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,我可以毫無問題地編寫盡可能多的內容。 如果getty被重新打開,只要它發現速度較慢,速度較慢,就會中斷我的連接。

謝謝你的幫助。 我特別欣賞有關如何解決任何問題的信息:設備樹,因為這是我要面對的問題,因為我嘗試將BeagleBone用於其他項目。

您顯示的命令與波特率無關,它控制引腳多路復用。 許多微控制器具有比I / O引腳更多的外設功能,因此I / O引腳需要映射到外設,並非所有連接都可以。 對於您的情況,您需要將特定引腳指定為UART發送和接收。

我自己沒有這樣做,但我發現了大量的文檔描述了通過sysctl控制引腳復用,並且proc文件系統最近被基於Device-Tree的新系統所取代。 結果幾乎所有現有的例子都被打破了。 更糟糕的是,某些命令甚至可能沒有基於設備樹的等效工作。

就設置波特率而言,通常使用termios.h cfsetispeed()cfsetospeed() ,如Unix規范中所述

您沒有指定要使用的語言。

在任何情況下,我認為您最好學習POSIX操作系統串行編程指南 ,它將為您提供有關如何在Linux中處理串行端口的大量信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM