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没有检测到设备。

Ubuntu查看nameservers Ubuntu查看串口号_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=<备份文件> 指定备份文件

驱动安装报错解决:网络不稳定,更换源。

Ubuntu查看nameservers Ubuntu查看串口号_串口_02


(在主目录下搜索不到source.list,要在“其他位置”搜索,双击source.list可以打开图形化交互界面,也可以更改源,前提要勾选上面的restricted,universe,multiverse,源代码。)


下载USB转串口驱动PL2303

(有效,不过具体的文件名根据系统文件来)

Ubuntu查看nameservers Ubuntu查看串口号_linux_03


上图中串口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打开选项栏,打什么字母就相当于选择对应选项。

Ubuntu查看nameservers Ubuntu查看串口号_linux_04


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即可找到。