Beaglebone Black 串口的操作(一)(更新)

本博客已逐步移至我的个人网站:www.zj-fighting.cn,欢迎访问。

今天成功地进行了对串口的操作和配置(其实比较简单), 想记录一下。

首先,由于Beaglebone Black采用了3.8的Linux内核,引进了设备树的概念。所以要想操作特定的外设,首先要先和设备树打交道。

重载串口设备树

好在今天要操作的是串口,串口的设备树已经被包含在文件系统中了, 可以查看一下:

Beaglebone Black 串口的操作(一)(更新)_第1张图片

其中有UART1-UART5共5个uart串口,UART0供调试使用。

该目录下的*dtbo是由*dts编译之后生成的文件,所以,如果你想写自己的设备树文件,可以参考这里的*,dts的写法。

在操作UART(这里我们先尝试使用UART2)之前,我们先看看系统默认已经加载的一些设备:

首先,由于我们经常会操作/sys/devices/bone_capemgr.8/slots这个文件,不妨设置一个环境变量SLOTS

echo SLOTS=/sys/devices/bone_capemgr.8/slots >> /home/root/.profile

(见过有的网友会把这其中的bone_capemgr.8写成bone_capemgr.*,因为他们的可能是bone_capemgr.9。这个我没有具体研究过,不过他们的做法显然可移植性更好)

Beaglebone Black 串口的操作(一)(更新)_第2张图片

可以看到eMMC和HDMI是默认加载好的。注意我的$SLOTS的实际值,如果你想跟着我来一起操作,关注一下倒数第二行。

为了能够加载UART2,我们只需要在终端输入:

cd /lib/firmware
echo BB-UART2 > $SLOTS
这时,我们看看是否加载成功了:

Beaglebone Black 串口的操作(一)(更新)_第3张图片
最后一行果然显示已经成功加载了。

串口2的读写

下面就可以操作一下串口了,不过首先要知道UART2在哪儿,可以参考一下下面这个表格:
Beaglebone Black 串口的操作(一)(更新)_第4张图片
好的,直接进入/dev/ttyO2。
可是,应该如何来显示呢?
我是通过BBB自带的cable来远程登录,用另一个USB转串口线来显示UART2接受到的信息的。
连接时,只需要USB串口上的三根线:GND, RXD, TXD。GND接BBB的P9_01, RXD接P9_21, TXD接P9_22。
将另一端直接接在计算机的USB口上。
有很多串口工具,我使用的是minicom。具体的设置可以参考 这篇文章, 不过要注意,要选择/dev/ttyUSB0, 波特率选择9600。
下面,就可以测试了:
键入
echo "Hello world of Beaglebone Black" > /dev/ttyO2

Beaglebone Black 串口的操作(一)(更新)_第5张图片
哈哈,成功了!

之前只测试了写串口,为了完整性,我又测试了读串口:
键入
cat /dev/ttyO2
然后在minicom中编辑内容,最后按Enter键,BBB就会读出之前编辑的内容,如下:

Beaglebone Black 串口的操作(一)(更新)_第6张图片

配置串口2的波特率

直接在BBB的终端键入

stty -F /dev/ttyO2 115200

就可以将串口2的波特率设置为115200了。(具体用法可以参考Advanced Programming in the Unix Environment

为了测试,需要更改minicom的配置。

在Ubuntu的终端键入

sudo minicom -s

会出现如下画面:

Beaglebone Black 串口的操作(一)(更新)_第7张图片

通过上下箭头将高亮移动到第三个选项(Serial port setup),按下Enter确认:

Beaglebone Black 串口的操作(一)(更新)_第8张图片

直接键入E:

Beaglebone Black 串口的操作(一)(更新)_第9张图片

再次键入E选择115200:
Beaglebone Black 串口的操作(一)(更新)_第10张图片
键入Enter连续退出两次回到以下界面:
Beaglebone Black 串口的操作(一)(更新)_第11张图片
通过上下箭头选择第六个选项,键入Enter键保存好就可以进行测试了:
Beaglebone Black 串口的操作(一)(更新)_第12张图片


参考文章: http://www.armhf.com/index.php/posts/
                   http://www.valvers.com/embedded-linux/beaglebone/step05-uart


你可能感兴趣的:(linux,UART,BeagleBone,设备树)