虚拟串口与虚拟机配置笔记

来源:互联网 发布:linux if语句 编辑:程序博客网 时间:2024/06/04 20:00

前言

相信大家都有调试Linux下的串口的时候。
最近博也要做一个小程序,写点脚本。

通过树莓派上的USB插口,读取串口数据。并记录至本地,再通过网络TCP/IP发送出去。

博主曾经在windows上写过Qt界面的串口API,但Qt界面封装的都较为简单。

在Linux底下主要是minicom或者是自己用C调用底层函数。(有点小困难,还在研究中)
想着直接在树莓派上写程序了,但多少有点麻烦。加上8-16树莓派最新的raspbian stretch使用了64位的系统(debian v9)。

新系统的兼容性还有待提高,博主之前用的wifi等网络配置方案都不太适用了。
(。。。刚刚看了一下官网,发现更新了9-17的新系统,打算写完博客以后试试看)
所以干脆直接在虚拟机上跑差不多后,再拷贝到树莓派上测试。

之前测试串口,一直都是用两个USB转TTL的模块,接好线后都插在电脑上通信。
配置方式如图,注意原来主机会丢失COM口的检测,转移至虚拟机上。

CSDN

然后ls /dev/ | grep USB会发现有ttyUSB0(USB0为第一个插上的串口)
但总感觉有点麻烦,拖着线啥的。弄的桌面挺乱。

接下就开始介绍,我推荐的无线方式。通过虚拟串口软件,模拟串口通讯。


正文

软件推荐

推荐大家使用Virtual Serial Port Driver这个软件,CSDN上有的下载。这里推荐一个需要积分少一点的地址。
VSPD下载地址
安装完成后的界面,新建两个连接的虚拟串口

CSDN

虚拟机配置

博主采用的是VMware这款软件。接下来也以此为例。

点开虚拟机设置,添加新设备。
但如果此时你的系统还在运行会无法添加。

CSDN

遇到上述情况,先把虚拟机关机,在添加串行端口
然后即可设置选择物理串行端口号,若没有检测出端口号,请重启下VMware

CSDN

然后打开虚拟机系统,/dev目录下的ttyS0为COM1的端口,以此类推

此处注意
我测试的时候发现如果虚拟机选择COM1作为端口,后面连接好后,会出现无法通信的情况。
不太清楚啥原因,猜测是Linux系统下COM1有其他用处。望高手指点一波。

然后在虚拟机的Linux里通过minicom,就可使用虚拟串口与windows主机进行通信。

CSDN


后附minicom初始配置

        +-----[configuration]------+        | Filenames and paths      |        | File transfer protocols  |        | Serial port setup        |        | Modem and dialing        |        | Screen and keyboard      |        | Save setup as dfl        |        | Save setup as..          |        | Exit                     |        | Exit from Minicom        |        +--------------------------+

| A - Serial Device : /dev/ttyS1

首先进入Serial port setup把A选项的Serial Device改成你需要使用的com口
我使用的是COM2所以对应的是/dev/ttyS1

|E - Bps/Par/Bits : 115200 8N1

E是设置波特率、数据位、校验位、停止位的。

| F - Hardware Flow Control : No

一些博客说把这个选项关掉。不然终端只能打印打印下位机的信息,不能接受键盘的输入。

然后把Modem and dialing里面的A、B、K选项的参数,删为空。

暂且不知道啥原因,大家知道的话可以讨论一下

结语

接下来的任务就是开始做之前说的小程序。
打算用C语言写调用系统API的程序,然后再写个开机脚本
后续写好后,会整理以后,发一篇博客的

原创粉丝点击