我刚开始使用我的Raspberry Pi,我有一个项目,我想从USB端口读取数据。我已经安装了Java JDK8并编写了编译和运行的程序。但我得到的信息是/ dev / ttyUSB1不存在。
我只是从Arduino上的USB端口连接到RPi上的USB端口,我正在使用Raspbian Debian Wheezy
当我去DIR / dev /并使用$ ls时,我只能找到tty0到tty63。我在互联网上搜索过,有人说你可以使用ttyAMA0,但这不起作用。我也搜索了同样的问题,但没有找到我的问题的答案。
我使用了$ lsusb,它在总线001上给了我4个设备(001-004)。我可以看到,例如,我的USB键盘被列为总线001设备004:ID 1532:010b Razer USA,Ltd。 如果我运行$ dmesg | grep制造商我明白了: [xxxxxxxxx] usb 1-1.2:制造商:Razer
所以我的问题是为什么我的usb设备没有被列为ttyUSB [id]?我是否必须手动附上它?
对于Linux来说,我有点像菜鸟。
希望有人可以帮助我!
答案 0 :(得分:2)
我有一些坏消息要告诉你。您在RPi上没有/ dev / ttyUSB [n]设备的原因(当您连接Arduino时)是因为您需要Arduino驱动程序(特别是FTDI驱动程序)。不幸的是,Arm平台(包括RPi)尚不存在这些驱动程序。这是根据FTDI web page显示的支持。请注意缺少对ARM的Linux驱动程序支持。
显然在运行Linux的ARM上,编程Arduino的唯一方法是直接通过GPIO引脚通过串行端口接口。有关这样做的信息可以在here找到。您还需要在Arduino方面做类似的事情,请参阅此information。
一旦你通过直接串口连接两个设备,那么你可能会遇到另一个SNAFU。默认情况下,显然在RPi Linux上将使用串行端口发送调试/控制台输出。为了使用串行接口来处理必须修改的行为。这个article讨论了这一点。特别是禁止内核使用串口进行终端使用,这似乎适用:
以下步骤(基于干净的2012-07-15-wheezy-raspbian安装
在Raspberry上打开终端,或通过SSH连接到Raspberry Pi。
备份/boot/cmdline.txt文件。 sudo cp /boot/cmdline.txt /boot/cmdline_backup.txt
- 醇>
编辑/boot/cmdline.txt文件: sudo vi /boot/cmdline.txt
此文件包含: dwc_otg.lpm_enable = 0 console = ttyAMA0,115200 kgdboc = ttyAMA0,115200 console = tty1 $
删除引用UART串口(ttyAMA0)的参数: dwc_otg.lpm_enable = 0 console = tty1 $
评论/ etc / inittab中的下一行: T0:23:respawn:/ sbin / getty -L ttyAMA0 115200 vt100
- 醇>
重新启动Raspberry Pi sudo reboot
如果你使用的是与Debian不同的Linux发行版,它会有所不同,但基础知识仍然适用(修改内核命令行)