windows系统和虚拟机上ubuntu系统通过虚拟串口进行通信

news2024/11/17 0:03:18

本文的目的是实现windows系统和虚拟机上安装的ubuntu通过串口进行通信。为了直观观测串口收发数据的内容,需要在windows系统和ubuntu系统使用串口助手来进行监听。windows系统端用的监听工具是串口助手SSCOM,ubuntu系统端使用的串口助手是CuteCom。

ubuntu端CuteCom发送字符"1"和"2",windows端SSCOM可以接收到这两个字符。再通过windows端SSCOM发送字符串"button_up"和"button_down",ubuntu端的CuteCom同样可以接收到这两个字符串。这样就实现了windows系统和ubuntu系统的串口通信。

本例用到的虚拟机VMware版本为17.5.0,ubuntu版本为22.04.3,虚拟串口vspd版本为7.2,windows系统串口助手SSCOM版本V5.13.1,ubuntu系统串口助手为CuteCom版本为0.30.3。

本文推荐了虚拟机下载安装、在虚拟机上安装ubuntu系统教程的博文链接。vspd和SSCOM的下载安装比较简单,网上资料也比较多,大家可以自行搜索。

目录

一、什么是虚拟机

二、在windows系统安装虚拟机

三、在虚拟机上安装Ubuntu

四、在windows系统安装虚拟串口vspd

五、在windows系统配置vspd虚拟串口

六、在虚拟机上添加虚拟串口

1、在虚拟机上添加虚拟串口

2、关联虚拟机和宿主机的串口

3、连接虚拟机上的虚拟串口

七、在ubuntu系统安装配置串口助手

1、调出终端命令行窗口

2、安装CuteCom

3、打开CuteCom

4、配置CuteCom

(1)设置串口参数

(2)打开串口使用权限

5、CuteCom功能分区

6、ubuntu串口命名规律

八、windows系统SSCOM和ubuntu系统CuteCom进行通信

九、结论


一、什么是虚拟机

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。

简单的说,虚拟机就是在windows系统上安装的一个仿真软件,这个软件虚拟仿真出的另外一台独立的电脑,windows所在的实体机也叫宿主机,虚拟的这台电脑叫虚拟机,这台虚拟机和真实的电脑一样,可以安装操作系统,也可以在操作系统里安装软件。本文在虚拟机里安装的操作系统是ubuntu。

二、在windows系统安装虚拟机

操作步骤可参考以下链接博文:

Vmware下载安装教程(非常详细)从零基础入门到精通,看完这一篇就够了_vmware安装教程-CSDN博客

三、在虚拟机上安装Ubuntu

操作步骤可参考以下链接博文:

Ubuntu系统下载及安装教程_ubuntu下载-CSDN博客

注意:如果下载的ubuntu文件为iso格式,那么可以省略此博文的第2、3两步。

四、在windows系统安装虚拟串口vspd

操作步骤略。

五、在windows系统配置vspd虚拟串口


操作步骤可参考以下链接博文的第一步"配置vspd虚拟串口":

利用proteus实现串口助手和arduino Mega 2560的串口通信-CSDN博客

本例添加的串口号为COM1和COM2。

本文window系统的SSCOM与COM1相连,Ubuntu系统的CuteCom与COM2相连,这样SSCOM就可以通过虚拟串口和CuteCom进行通信。虚拟串口的连接如下图所示。

六、在虚拟机上添加虚拟串口

要想让宿主机的windows系统和虚拟机的ubuntu系统进行串口通信,就需要在宿主机和虚拟机分别配置虚拟串口,并且需要把两个虚拟串口关联起来。

上边第四步和第五步实现了在宿主机安装配置虚拟串口,虚拟机上已经带有虚拟串口,不用另外安装软件,只需要添加即可。宿主机配置的虚拟串口在虚拟机上是可以检测到的,所以可以把虚拟机上的虚拟串口和宿主机的虚拟串口关联起来

下边介绍关联两个系统的虚拟串口的步骤:

1、在虚拟机上添加虚拟串口

虚拟机安装完ubuntu,默认的设备里是没有虚拟串口的,需要在ubuntu处于关机的状态下,单击"编辑虚拟机设置"来进行添加,如下图所示。

在"虚拟机设置"对话框里选择"硬件"标签,然后单击"添加"按钮。

在“添加硬件向导”对话框中选择“串行端口”,然后单击“完成”按钮。

2、关联虚拟机和宿主机的串口

在“虚拟机设置”对话框,可以看到硬件列表里已经成功添加了一个串行端口,在右侧“使用物理串行端口”下侧的下拉列表框中选择COM2,然后点击“确定”按钮。COM1和COM2是在宿主机windows系统下创建的,见上边第五步。

此时在ubuntu界面设备列表里,也可以看到一个串行端口,鼠标移动到这里,可以显示“正在使用端口 COM2”,关联成功。

3、连接虚拟机上的虚拟串口

单击“开启此虚拟机”启动ubuntu系统,在ubuntu界面右下角有一个任务栏,有虚拟串口的图标,如下图所示。

鼠标右键点击这个图标,在弹出的菜单里有“连接”或者的“断开连接”的选项,单击即可完成相应的操作。串口连接后图标下侧会出现一个小绿点,断开时没有小绿点。鼠标移动到这个图标上,会显示“串行端口:正在使用端口 COM2”

七、在ubuntu系统安装配置串口助手

本例安装的串口助手为CuteCom,安装需要在终端命令窗口来操作。

1、调出终端命令行窗口

打开终端命令行窗口的操作步骤:单击“显示应用程序”图标->单击“终端”图标即可。

调出终端命令行窗口,如下图所示。

2、安装CuteCom

在命令行输入:sudo apt-get install cutecom

安装过程如下图所示。

安装完成后,单击“显示应用程序”图标->应用程序最后一项就是CuteCom,单击“终端”图标即可打开这个软件。应用程序图标比较多,一页放不下,可以上下滚动滚轮进行翻页

3、打开CuteCom

CuteCom打开后的界面如下图所示。

4、配置CuteCom

(1)设置串口参数

在Device选择/dev/ttyS0,然后单击“Settings”按钮。

在Settings设置界面,设置Baudrate(波特率)为9600,然后单击“Open”按钮,连接串口。

(2)打开串口使用权限

如果单击“Open”后出现下图所示报错信息,“Permission denied”意思是ttyS0串口未授权,所以需要在终端命令行进行授权。

授权的操作步骤:

在终端命令行输入:sudo chmod 777 /dev/ttyS0,然后回车。这行命令的作用是开放串口ttyS0的使用权限。

执行命令前需要输入用户登录密码,然后回车即可完成设置。注意,此时输入密码时不显示输入内容,输完密码后直接回车即可。

完成串口授权后,再单击cutecom窗口的"open"按钮,就可以打开ttyS0串口了。

5、CuteCom功能分区

CuteCom界面如下图所示,在"Input"后边的编辑框输入要发送的内容,然后回车,即可完成发送。发送的内容在"Input"上侧的文本框显示,"Input"下侧的文本框用来显示接收到的内容。

6、ubuntu串口命名规律

本文在设备里只添加了一个虚拟串口,所以Device里只有一个ttyS0,如果添加了多个虚拟串口,那命名有什么样的规律呢?ubuntu串口的命名规律为:ttyS0,ttyS1,ttyS2......,在设备列表中名称对应为:串行端口,串行端口2,串行端口3......,如下图所示。

八、windows系统SSCOM和ubuntu系统CuteCom进行通信

windows系统SSCOM串口助手端口号设置为COM1,波特率也设置为9600,然后单击“打开串口”按钮。

在CuteCom的Input输入框内输入字符“1”,然后回车,可以看到在SSCOM的接收框内也显示收到了字符“1”。

在CuteCom的Input输入框内输入字符“2”,然后回车,可以看到在SSCOM的接收框内也显示收到了字符“2”。

在SSCOM的发送框内输入字符串“button_up”,然后回车,可以看到在CuteCom的接收框内也显示收到了字符串“button_up”。

在SSCOM的发送框内输入字符串“button_down”,然后回车,可以看到在CuteCom的接收框内也显示收到了字符串“button_down”。

九、结论

通过以上操作,可以看到在宿主机系统上安装的虚拟串口,能够为宿主机上安装的虚拟机所共用,因此虚拟机上安装的ubuntu系统就可以通过这些虚拟串口实现与windows系统的通信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1299178.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

class071 子数组最大累加和问题与扩展-下【算法】

class071 子数组最大累加和问题与扩展-下【算法】 code1 152. 乘积最大子数组 // 乘积最大子数组 // 给你一个整数数组 nums // 请你找出数组中乘积最大的非空连续子数组 // 并返回该子数组所对应的乘积 // 测试链接 : https://leetcode.cn/problems/maximum-product-subarray…

【Linux】系统初识之冯诺依曼体系结构与操作系统

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.冯诺依曼体系结构 2.操作…

【Docker一】Docker架构、镜像操作和容器操作

一、docker基本管理和概念 1、概念 docker:开源的应用容器引擎。基于go语言开发的。运行在Linux系统中的开源的轻量级的“虚拟机” docker的容器技术可用在一台主机上轻松到达为任何应用创建一个轻量级到的,可移植的,自给自足的容器 dock…

51单片机数码管的使用

IO的使用2–数码管 本文主要涉及51单片机的数码管的使用 文章目录 IO的使用2--数码管一、数码管的定义与类型1.1 数码管的原理图二、 举个栗子2.1 一个数码管的底层函数2.2 调用上面的底层函数显示具体数字 一、数码管的定义与类型 数码管是一种用于数字显示的电子元件&#x…

数字系统设计(EDA)实验报告【出租车计价器】

一、问题描述 题目九:出租车计价器设计(平台实现)★★ 完成简易出租车计价器设计,选做停车等待计价功能。 1、基本功能: (1)起步8元/3km,此后2元/km; (2…

Redis 环境搭建2

文章目录 第2关:使用 Redis 第2关:使用 Redis 本文是接着上篇文章写的第二关代码,部分人再进入第二关时不会保留第一关的配置的环境,可以通过下面一句代码进行检验。 redis-cli -p 7001 -c如果进入到了redis界面就是有环境&…

Unity中Batching优化的GPU实例化(4)

文章目录 前言一、构建需要实例化的额外数据二、在顶点着色器,将实例化 ID 从 appdata 存入 v2f 传给片元着色器三、在片断着色器中访问具体的实例化变量三、使用代码修改Shader材质属性,实现GPU实例化后不同对象颜色不同的效果1、在C#测试脚本生成小板凳…

linux 中crontab 定时任务计划创建时间文件夹示例

1.创建一个sh脚本 /usr/bin/mkdir 是mkdir命令的路径 /usr/bin/chmod 是chmod命令的路径 2.编辑定时任务 crontab -e

PHP入门软件Wampserver与vscode

PHP入门软件Wampserver与vscode Wampserver 一个集成的PHP环境,非常好用,上链接官网:https://www.wampserver.com/#download-wrapper 推荐华军https://www.onlinedown.net/soft/82112.htm 无脑下一步就行,会出现两个弹窗全点否。…

有理函数的积分

1.多项式相除法: 2.分子分母次数带来的解题思路差异: 1.总体目的:降次 2.分子次数高于分母,采用多项式相除 3.分子次数等于分母,分离常数 4.最终形式:分子次数低分母次数高 3.不同形式的计算方法 4.按类拆…

排序:挖坑快排前后指针快排

目录 挖坑快排: 代码实现: 代码分析: 前后指针快排: ​编辑动画分析: 代码分析: 代码演示: 快排的优化:三数取一 挖坑快排: 挖坑法,顾名思义&am…

Unity打包到Webgl平台以及遇到的问题

Unity打包到Webgl平台以及遇到的问题 参考网站 Unity打包WebGL的全过程及在打包和使用过程中会遇到的问题(本地测试)-CSDN博客 unity打包到Webgl 并配置能正常运行 这里我用的是Unity2022.3.3f1c1版本 有两种方法 1、配置本地web服务 2、安装vsCode>添加插件LiveServe…

C语言进阶之路之顶峰相见篇

目录 一、学习目标 二、宏定义 预处理 宏的概念 带参宏 无值宏定义 三、条件编译 条件编译 条件编译的使用场景 四、头文件 头文件的作用 头文件的内容 头文件的基础语句: GCC编译器的4个编译步骤: 总结 一、学习目标 掌握宏定义含义和用…

持续集成交付CICD:通过API方式上传Nexus制品

目录 一、实验 1.通过API方式上传Nexus制品 二、问题 1.如何通过API方式上传PNG图片 2.如何通过API方式上传tar.gz 与 ZIP文件 3.如何通过API方式上传Jar file文件 4.如何通过API方式上传制品(maven类型的制品)文件 5.如何下载制品 一、实验 1.通…

我在Vscode学OpenCV 图像处理二(滤除噪声干扰)

图像处理二 滤除噪声干扰三、噪声3.1图像噪声3.2 滤波3.2.1均值滤波(1)锚点(2)中心点(下面第3小点会详细解释)(3)核的大小奇偶数的区别(1)举例奇偶的例子&…

tomcat篇---第四篇

系列文章目录 文章目录 系列文章目录前言一、为什么我们将tomcat称为Web容器或者Servlet容器 ?二、tomcat是如何处理Http请求流程的?三、tomcat结构目录有哪些?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这…

软件测试相关

软件测试是什么? 使用人工和自动手段来运行或测试某个系统的过程,其目的在于验证它是否满足规定的需求或弄清预期结果与实际结果的差别。 为什么做软件测试?目的是什么? 发现软件存在的代码或业务逻辑错误 检验产品是否符合用户需…

Docker本地部署Drupal内容管理框架并实现公网远程访问

文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址7. 结语 前言 Dupal是一个强大的CMS,适用于各种不同的网站项目,从小型个人博客到大型企业级门户网站。它…

免费分享一套Springboot+Vue前后端分离的在线商城系统,挺实用的

大家好,我是java1234_小锋老师,看到一个不错的SpringbootVue前后端分离的在线商城系统,分享下哈。 项目视频演示 【免费】SpringbootVue在线商城系统 毕业设计 Java毕业设计_哔哩哔哩_bilibili【免费】springbootvue在线商城系统 毕业设计 …

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks(2020)

文章目录 -Abstract1. Introductiondiss former methodour method 2. Related Work3. Compound Model Scaling3.1. 问题公式化3.2. Scaling Dimensions3.3. Compound Scaling 4. EfficientNet Architecture5. Experiments6. Discussion7. Conclusion 原文链接 源代码 - 本文中…