When you plugin your USB-UART converter, and run “> ls /dev/tty*”, if you don’t see the /dev/ttyUSB0 (or similar), your Linux does not detect your USB-UART device.
当插入USB设备后,在终端运行 ls /dev/tty* 时,若没有找到类似 /dev/ttyUSB0 的内容,说明Linux没有检测到设备。
We need to install the driver for your device.
需要安装驱动。
在终端输入lsmod | grep usbserial,若返回usbserial,说明系统支持USB转串口。
参考:Ubuntu下USB转串口芯片驱动程序安装cp210x,pl2303_飞鸿_新浪博客 参考这篇安装不成功,尝试解决未果。(可跳过该部分)
cd ~
# 打开终端安装驱动
sudo apt-get install build-essential linux-source
# 复制文件
cp /usr/src/linux-source-4.15.0.tar.bz2 .
# 解压.bz2
bunzip2 linux-source-4.15.0.tar.bz2
# 解压.tar
tar xf linux-source-4.15.0.tar
# 转换路径
cd ~/linux-source-4.15.0/
make oldconfig
make prepare
make scripts
注:
- 安装版本会打印出来,此处是linux-source linux-source-4.15.0
- cp是复制文件命令
- Linux bunzip2命令是.bz2文件的解压缩程序
- tar是用来建立,还原备份文件的工具程序
-x或–extract或–get 从备份文件中还原文件
-f<备份文件>或–file=<备份文件> 指定备份文件
驱动安装报错解决:网络不稳定,更换源。
(在主目录下搜索不到source.list,要在“其他位置”搜索,双击source.list可以打开图形化交互界面,也可以更改源,前提要勾选上面的restricted,universe,multiverse,源代码。)
下载USB转串口驱动PL2303
(有效,不过具体的文件名根据系统文件来)
上图中串口0应该就是新插入的设备,即ttyUSB0(对应COM1口)。
在终端输入ls /dev/tty*,可以看到/dev/ttyUSB0和/dev/ttyUSB1(或类似的),说明Linux系统已识别到设备。若未识别到,则查看虚拟机的菜单栏“虚拟机->可移动设备-><你的设备>”是否连接。
Linux的设备对应于/dev/目录中的某个文件,串口COM1对应ttyS0,COM2对应ttyS1,使用以下命令来查看你对COM1的权限:
$ ls -l /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 2009-08-01 11:05 /dev/ttyS0
可以看到,它的属主是root。
至此成功安装了USB转串口驱动
安装minicom (Linux系统下的串口调试助手,键盘操作)
sudo apt-get install minicom
sudo minicom打开界面,Ctrl-A Z打开选项栏,打什么字母就相当于选择对应选项。
P修改波特率、校验方式等(命令 sudo minicom -s可直接打开该界面)。
O中的Serial port setup修改串口号,串口号格式要与ls /dev/tty*一致。
Q退出minicom
最后一定要选择 Save setup as dfl保存为默认配置,这样下次打开时才是配置完的串口。
然后,选择 exit 退出。
在上面minicom的配置中设置Serial Device: /dev/ttyUSB0,串口参数等。重启minicom,这样基本上就可以正常使用minicom来打印串口信息了。
sudo minicom后,就可以直接输入命令回车,串口接收数据会打印在下方。
对于有两个USB的情况,可以分别配置一下试试。
在编写程序时,要注意区分\n,\r和\r\n,在windows下感觉没什么区别,但linux下可以看出很明显的区别,真正的换行是\r\n,如果只写\n你会发现呈现一种对角线的形式来输出,因为他是直接在前一次输入的结尾换行到下一行,不会自动回车到行首。
CuteCom是Ubuntu自带的串口调试助手,是图形化界面的,不过支持的波特率不够全,使用起来更方便,点击Ubuntu系统界面上的activity(活动)搜索CuteCom即可找到。