软件环境:
主机:win10
虚拟机:vmware12,
虚拟机系统:ubuntu16.04
ubuntu下的串口调试软件:minicon 2.7
windows下的串口调试软件:随便找一个就是
硬件环境:
笔记本电脑+两个互联的USB转串口接口。
由于我只想测试虚拟机与主机的串口通信,因此没有什么下位机串口设备,就两个USB转串口插头对接在一起,GND与GND相接,TX与RX相接,这样才能实现收发,插在笔记本的两个usb口上就可以了。
两个电路板是一样的,这样的USB转串口接口淘宝上很多,用杜邦线一连即可。
当然,如果没有该硬件接口,你也可以使用虚拟串口软件模拟出两个互联的串口。
步骤1:添加并设置虚拟机的串口。
在vmware菜单中:虚拟机->设置->添加中。虚拟机的硬件是可以自定义的,一般使用虚拟机安装linux时,是没有安装串口设备的,请在虚拟机开机前添加串口设备,否则会显示无法添加。
可以在win10的设备管理器中看到新添加的串口设备及串口号,如果看不到或有叹号,请检查硬件并正确配置RS232驱动。此时设备管理器中会多出2个串口号,我显示的是COM6和COM8,也可以直接在虚拟机下图的配置界面中查看增加了哪两个串口,那么,在虚拟机的串口配置中选一个填进去。
确定后你的虚拟机就有串口了,ubuntu下不用配置RS232的驱动,一般自带。
步骤2、下载并配置minicom。
采用在线安装,网有时候不好联,我第一次没联上,换个时段就连上了,看运气
sudo apt-get install minicom
以管理员权限打开minicom,否则将没有权限读取外设数据
sudo minicom
下面配置minicom。默认配置是肯定连不上串口的,所以刚装好软件不要急于收发数据,先配置一下。
先按ctrl+A ,底部出现一个亮条,再按z,即可进入一个更详细的菜单
接下来按o,配置minicom
选择串口设置Serial port setup
下图是没修改前得默认配置,需要修改3处:
(1)、改设备名。可以看到,默认串口设备名叫tty8,这不是我们对应的USB转串口设备,我的设备是ttyUSB0,需要根据你的实际情况进行修改,如何找出这个设备名在本文后面会介绍。
(2)改波特率,这个根据自己情况选,收发两端保持一致就好。
(3)Hardware Flow Control 改为no,具体原因可去查一查“串口硬件控制流”
配置完后的数据是这样
选择Save setup as dfl保存为默认配置。到此就可以使用minicom了
步骤3:测试Win10向虚拟机发送数据
在主机上运行串口调试助手,虚拟机上我用的是COM6,那主机就打开COM8,设置好与虚拟机中一样的波特率,写几个字符发送试试看。
我设置了定时自动发送,ubuntu会不停地收到测试字符
可以看到minicom收到test字符了
步骤4: 虚拟机向win10发送串口数据
选中minicon所在的命令行窗口,就在上图中的界面下,随便敲击键盘,貌似什么反应也没有,但数据真的发送出去了,你可以切换去看看win10下的串口助手收到了啥
数据接收区显示,字符确实收到了。测试到此完成。
可能遇到的问题:
不知道串口名称叫什么,打开minicon提示没有那个文件或目录
问题原因:串口文件找错了。linux的设备均以文件形式存在,向对应的文件里写数据就是向对应的设备发送数据,那么,你的串口设备插上后,会在/dev目录下创建一个对应的设备文件,这个文件可能叫ttyUSB0,或者ttyUSB1等,名称不一定,USB转串口设备一般名称为ttyUSB*,纯粹的串口名称一般为ttyS*,我们笔记本电脑大部分用的是USB转串口设备,所以要根据你的实际情况确定你的USB转串口设备究竟叫什么名字。比如,设备名称明明叫ttyUSB0,却非要配置端口为ttyUSB1,自然是找不到那个文件的。
那么,如何找到正确的USB转串口设备名称呢?
网上方法1:使用lsusb命令
lsusb
可以看到Device 009 就是我想找的USB转串口设备,可是这并能不看出具体的文件名,我的目的是要找一个能在minicom配置中具体写的文件名。
网上方法2:使用dmesg
dmesg
这个方法可行,请看第3行,清楚地写着该串口设备被绑定到了ttyUSB0文件上,所以,/dev/ttyUSB0就是minicom该配置的串口路径
为了避免看花眼,可以用下面的方法筛选出有用信息
demsg | grep ttyU //从上述打印信息中筛选出包含ttyU字符的条目,显示的结果会简洁许多
自己的方法:
自创的方法也不算太笨,在ubuntu下,你用文件管理器打开/dev目录,你会看到许多文件,滚动条拉到文件名以tty开头的文件区域附近,插上你的设备,可以在窗口中眼睁睁的看着新冒出来一个文件,这个文件名就是你要找到串口设备名,够直观吧。