本帖最后由 651927693 于 2014-8-26 14:26 编辑
串口通信是最简单的通信方式之一,而且十分常用。于是,我拿到我的新BB-Black之后,第一件事情就是先来测试它的串口通信。
由于BB-Black采用3.8的内核,硬件是采用设备树的组织方式。所以,如果硬件没有自动加载,在操作硬件之前要先加载硬件。
我需要加载的设备是UART2,它对应于/dev/ttyO2。首先我在这个网站上找到了它的设备树文件/ttyO2_armhf.com-00A0.dtbo
下载后需要把这个文件复制到我的BB-Black上:
在Ubuntu终端中键入:
scp ttyO2_armhf.com-00A0.dtbo root@192.168.7.2:/lib/firmware/
然后需要输入密码之类的。
ssh到BB-Black上,然后
cd /lib/firmware
ls ttyO2*
屏幕会输出以下信息:
/lib/firmware/ttyO2_armhf.com-00A0.dtbo
说明文件确实复制过来了。
之后就是要加载。加载是通过操作/sys/devices/bone_capemgr.8/slots这个文件完成的。
由于我们经常会操作/sys/devices/bone_capemgr.8/slots这个文件,不妨设置一个环境变量SLOTS echo SLOTS=/sys/devices/bone_capemgr.8/slots >> /home/root/.profile
okay,下面键入echo ttyO2_armhf.com > $SLOTS
这样,应该就可以加载成功了。如果不确定,可以查看一下:如果输出结果中有下面这么一行,说明你的UART2确实是加载成功了:
8: ff:P-O-L Override Board Name,00A0,Override Manuf,ttyO2_armhf.com
下面我们就来操作一下串口。
串口在Linux中就是一个文件,因此只需要像文件一样操作它就可以了(在shell里是这样)。
首先在你的Ubuntu或者其他发行版的Linux中打开minicom
minicom -D /dev/ttyUSB1 -b 9600
在BB-Black中键入:
echo "This is 1st test" > /dev/ttyO2
如右上方窗口,这时你会发现minicom的窗口中出现了“This is 1st test”,如左下方窗口:
上面说明了从BB-Black想串口写消息,Ubuntu可以收到。
下面再测试相反的过程,从Ubuntu的minicom中写消息,然后在BB-Black中读。
想要从BB-Black中读,只需要在BB-Black中键入:
然后在minicom中写入任意的信息。这时我们会看到BB-Black中也确实收到了这个信息。
Okay,大功告成!
期待和大家一同交流学习。
如果大家有什么不了解的地方,也可以参阅我的博客。
当然了,在下面一起讨论会更好。谢谢。
@zhangmangui |