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

本文的目的是实现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。

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

要想让宿主机的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.mzph.cn/news/209672.shtml

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

相关文章

OpenCL学习笔记(一)开发环境搭建(win10+vs2019)

前言 异构编程开发,在高性能编程中有重要的,笔者本次只简单介绍下,如何搭建简单的开发环境,可以供有需要的小伙伴们开发测试使用 一、获取opencl的sdk库 1.使用cuda库 若本机有Nvidia的显卡,在安装cuda库后&#x…

如何提高大模型在超长上下文的表现?Claude实验表明加一句prompt立即提升效果~

本文来自DataLearnerAI官方网站:如何提高大模型在超长上下文的表现?Claude实验表明加一句prompt立即提升效果~ | 数据学习者官方网站(Datalearner)https://www.datalearner.com/blog/1051701947131881 Claude 2.1版本的模型上下文长度最高拓展到200K&am…

【Flink系列四】Window及Watermark

3.1、window 在 Flink 中 Window 可以将无限流切分成有限流,是处理有限流的核心组件,现在 Flink 中 Window 可以是时间驱动的(Time Window),也可以是数据驱动的(Count Window)。 Flink中的窗口…

c jpeg YUV图片帧分割成 8*8 块 ,与逆向把8*8还原为帧

1. 正向分割为若干8*8 块 下面的程序为通用程序&#xff0c;可以分割任意块 #include <stdlib.h> #include <string.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdlib.h>…

如果微软20年前开发.net core,JAVA会不会和IE一样倒下了

可以跨平台&#xff0c;大量类库&#xff0c;微软亲自操刀&#xff0c;性能一流&#xff0c;因为没有做跨平台&#xff0c;.NET被 python,javascript等抢了一半以上市场。 如果微软早早的推出类似.net core这样的跨平台语言&#xff0c;.net程序猿还会出在这样的尴尬局面吗众所…

Java基础-开发流程以及HelloWorld程序

目录 1. Java的开发流程2. HelloWorld 1. Java的开发流程 开发Java程序&#xff0c;需要三个步骤&#xff1a;编写代码&#xff0c;编译代码&#xff0c;运行代码 2. HelloWorld 编写代码 public class HelloWorld {public static void main(String[] args) {System.out.pri…

Ribbon 饥饿加载

Ribbon默认是采用懒加载&#xff0c;即第一次访问时才会去创建LoadBalanceClient&#xff0c;请求时间会很长而饥饿加载则会在项目启动时创建&#xff0c;降低第一次访问的耗时&#xff0c;通过下面配置开启饥饿加载: 一、懒加载 Ribbon 默认为懒加载即在首次启动Application…

代码随想录二刷 |二叉树 | 二叉树的层序遍历

代码随想录二刷 &#xff5c;二叉树 &#xff5c; 二叉树的层序遍历 题目描述解题思路代码实现 题目描述 102.二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例…

Flask 最佳实践(一)

Flask是一个轻量级而强大的Python Web框架&#xff0c;它的简洁性和灵活性使其成为许多开发者的首选。然而&#xff0c;为了确保项目的可维护性和可扩展性&#xff0c;我们需要遵循一些最佳实践。本文将探讨Flask中一些关键的最佳实践。 1. 项目结构 构建一个清晰的项目结构是…

Java实现Socket聊天室

一、网络编程是什么&#xff1f; 在网络通信协议下&#xff0c;不同计算机上运行的程序&#xff0c;进行数据传输。 应用场景&#xff1a;即时通讯、网游对战、金融证券、国际贸易、邮件、等等。 不管是什么场景&#xff0c;都是计算机与计算机之间通过网络进行数据传输。 …

软件测试之接口测试自动化(详解版)

本着以和大家交流如何实现高效的接口测试为出发点&#xff0c;本文包含了我在接口测试领域的一些方法和心得&#xff0c;希望大家一起讨论和分享&#xff0c;内容包括但不仅限于&#xff1a; 服务端接口测试介绍接口测试自动化介绍接口测试自动化实践关于接口测试自动化的思考…

质量工程化,交付快速化

质量和速度之间权衡让人很难取舍&#xff0c;而通过推进质量工程&#xff0c;以系统化的方式识别和优化系统痛点&#xff0c;可以帮助团队构建既快又好的精益软件生产系统。原文: Quality Engineered, Speed Delivered 所有人都想要更快的速度。 但需要解决复杂问题: 权衡质量会…

Kotlin(十四) 扩展函数和运算符重载

目录 扩展函数 语法结构 代码示例 运算符重载 语法结构 一元操作符 二元操作符 数值类型操作符 等于和不等于操作符 比较操作符 调用操作符 扩展函数 语法结构 对于扩张函数的语法结构其实很简单&#xff0c;你想在那个类中添加扩张函数&#xff0c;那么你就用该类…

6. Zigzag Conversion

按照下标找规律注意leetcode的运行输出&#xff0c;如果其中一组用例出现死循环&#xff0c;输出结果会在一个文件&#xff0c;即部分测试用例正确&#xff0c;部分错误且出现死循环&#xff0c;则需辨别输出结果属于哪一份测试用例 class Solution { public:string convert(s…

(二)五种最新算法(SWO、COA、LSO、GRO、LO)求解无人机路径规划MATLAB

一、五种算法&#xff08;SWO、COA、LSO、GRO、LO&#xff09;简介 1、蜘蛛蜂优化算法SWO 蜘蛛蜂优化算法&#xff08;Spider wasp optimizer&#xff0c;SWO&#xff09;由Mohamed Abdel-Basset等人于2023年提出&#xff0c;该算法模型雌性蜘蛛蜂的狩猎、筑巢和交配行为&…

w3school学习笔记3(NumPy)

系列文章目录 文章目录 系列文章目录前言一、NumPy简介二、NumPy入门三、NumPy创建四、NumPy数组索引五、NumPy数组裁切六、NumPy数据类型七、NumPy副本/视图八、NumPy数据形状九、NumPy数组重塑十、NumPy数组迭代总结 前言 一、NumPy简介 1、什么是Numpy&#xff1f; NumPy是…

线上盲盒小程序,开启互联网盲盒时代

近年来&#xff0c;盲盒经济在国内非常火爆&#xff0c;各类盲盒品牌层出不穷&#xff0c;深受国内外年轻人、消费者的喜爱。 目前&#xff0c;根据数据显示&#xff0c;盲盒市场不仅在线下异常火热&#xff0c;线上盲盒也是成为了大众的新选择。各类电商平台中盲盒的成交额更…

Esxi7Esxi8设置VMFSL虚拟闪存的大小

Esxi7Esxi8设置VMFSL虚拟闪存的大小 ESXi7,8 默认安装会分配一个 VMFSL(VMFS-L)(Local VMFS)很大空间(120G), 感觉很浪费, 实际给 8G 就可以了, 最少 6G , 经实验,给2G没法安装 . Esxi7是虚拟闪存的 修改的方法是: 在安装时修改 设置 autoPartitionOSDataSize8192 在cdromBoo…

快捷切换raw页面到repo页面-Raw2Repo插件

Raw2Repo By Rick &#x1f4d6;快捷切换代码托管平台raw页面到repo页面 &#x1f517;github链接 https://github.com/rickhqh/Raw2Repo ✨Features 功能&#xff1a; ✅单击 Raw2Repo 插件按钮&#xff0c;即可跳转到相应的代码仓库页面。✅支持 GitHub、Gitee、GitCode …

spring boot整合mybatis进行部门管理管理的增删改查

部门列表查询&#xff1a; 功能实现&#xff1a; 需求&#xff1a;查询数据库表中的所有部门数据&#xff0c;展示在页面上。 准备工作&#xff1a; 准备数据库表dept&#xff08;部门表&#xff09;&#xff0c;实体类Dept。在项目中引入mybatis的起步依赖&#xff0c;mysql的…