PC和Android模拟器之间虚拟串口通信

2023-05-16

前言
很多时候我们在做串口通信的时候需要去模拟串口来调试,这样可以极大的方便我们的工作,不然的话可能需要连接硬件设备,比较麻烦。一般情况下我们先在电脑上模拟串口后初步调试,最后阶段在硬件设备上实际调试。

工具介绍
1.Virtual Serial Port Driver
2.串口调试助手(此处用的是友善串口调试助手)
3(☆重要).Genymotion模拟器(模拟串口调试最后安装Genymotion)
4.Oracle VM VirtualBox(利用 Oracle VM VirtualBox 我们可以虚拟你一个linux系统并创建一个串口,用来在模拟器中虚拟串口)

工具安装使用
1.Virtual Serial Port Driver
在这里插入图片描述
该软件提供虚拟串行端口的仿真,并通过虚拟零调制解调器电缆对可用的串行端口进行配对。与此软件配对的两个应用程序可以交换数据。每个端口上的每个数据都显示在计算机的设备管理器中以便查看,同时COM端口模拟其预期设置和运行进程。用户可以创建虚拟端口,而不必担心串行端口不足和物理硬件拥挤。该软件的下一个优势是能够与ActiveX、DDL和核心级实用程序等技术集成。

官网地址:https://www.virtual-serial-port.org/
安装完成之后虚拟通讯端口
在这里插入图片描述
COM6和COM7就是对应的通讯虚拟端口。查看设备管理器如下:
在这里插入图片描述
参照文章:https://dp2px.com/2019/06/12/virtualserial/

2.友善调试助手
串口调试助手安装完成之后,用于测试串口之间通讯是否正常。这里使用COM9和COM10虚拟串口测试
在这里插入图片描述
图中可以看到CMO9发送的数据COM10可以收到,COM10发送的数据COM9也可以收到,证明串口通讯是正常的。

3.Genymotion模拟器

安卓开发中常常需要用到模拟器进行测试,自带的模拟器一言难尽,当按下Run "app"那一刻,内存占用蹭蹭蹭地涨,卡爆,**最为重要的是串口调试需要安装安装Android 4.4.2(API 19)。选择这个版本的Android是因为4.4版本的模拟器是root过的,只有这样才能实现虚拟串口通信。**之前只用andriod studio中的虚拟器无论如何端口通讯都没法连接,所以才安装Genymotion模拟器

一、注册/登录
Genymotion官网地址:https://www.genymotion.com/
用邮箱注册新账号验证登录后即可下载,选择免费版本就好啦
在这里插入图片描述
二、下载/安装Genymotion
下载地址:https://www.genymotion.com/download/,选择With VirtualBox版本下载
在这里插入图片描述
可以选择自定义的安装目录

一路Next安装下去就可以了,因为下载的安装包含有VirtualBox,所以在安装过程中会自动进行安装VirtualBox的操作界面,也一并安装完成后接下来在AndroidStudio里配置Genymotion。

三、Android Studio集成Genymotion
1.在AndroidStudio里安装genymotion插件
点击工具栏里“File”->“Settings”->“Plugins”,搜索genymotion并且安装
在这里插入图片描述
安装genymotion插件

安装后重启Android Studio
在这里插入图片描述
安装完成后将出现Genymotion图标(我安装完成之后,没有出现这个图标,然后view>Toobar选中就显示了)
在这里插入图片描述
2.设置Genymotion
在Android Studio里“Settings”->“Other Settings”->“Genymotion”,添加Genymotion的安装路径
在这里插入图片描述

在Genymotion里设置Android SDK地址,用自己的用户登录Genymotion,登录成功之后
在这里插入图片描述
在这里插入图片描述
配置完成

3.使用Genymotion模拟器
配置安装完成后,点击Genymotion图标,可以新建设备,可选择不同的API、Size等

在这里插入图片描述
创建成功后即可Start此模拟器
在这里插入图片描述

4.安装Genymotion时会自动安装Oracle VM VirtualBox,所以不用在单独安装Oracle VM VirtualBox,
设置端口通讯
在这里插入图片描述
在这里插入图片描述
选择串口:启用串口
端口编号COM1对应的就是/dev/ttyS0,COM2对应的就是 /dev/ttyS1
端口模式:主机设备
路径/地址: COM6 (对应咱们虚拟的串口)设置完毕之后就可以启动程序了

使用串口demo 编译运行就可以选择设备运行Android应用程序
在这里插入图片描述
项目启动成功。

我使用的串口调试demo是
https://github.com/z-jc/SerialProject-master.git
以上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PC和Android模拟器之间虚拟串口通信 的相关文章

  • 如何用Android做交互动画(翻译)

    我在 Android 中有一些 png 序列 我需要将它们的 x 和 y 位置从屏幕顶部到底部的翻译动画化 当动画发生时 我需要对象来接收单击事件 我知道这在 3 0 之前的 Android 版本中效果不太好 因为display对象的位置与
  • 即使我单击“运行”,Eclipse 也会运行调试模式

    Eclipse 总是在调试模式下启动我的应用程序 即使我单击常规的 运行 按钮 有任何想法吗 我发现我必须重新启动 Xoom 才能使其再次正常工作
  • 无法获取项目的未知属性“assembleRelease”

    将 Android Studio 更新到版本 2 2 并将 gradle 插件更新到 2 2 0 后 出现以下错误 错误 32 1 评估项目 jobdispatcher 时出现问题 无法获取 org gradle api Project 类
  • Android Widget ID 是否持久

    在从桌面删除该 Widget 实例之前 您从操作系统收到的用户桌面上特定 Widget 实例的 Widget ID 是否一致 我找不到任何明确说明这一点的文档 但我假设这是因为文档说您可以使用小部件 id 来存储任何实例配置信息 我想将一些
  • 如何从Slog中查看日志

    如何查看 Slog API 生成的日志 是否有任何选项可以查看系统缓冲区中的日志 我的意思是查看我们使用的无线电缓冲区的日志 adb logcat b 无线电 而这个日志是由Android的Log类生成的 Slog API 的输出在哪里 怎
  • 不使用eclipse安装Android模拟器

    如何在没有eclipse的电脑上安装android模拟器 android模拟器无需安装eclipse 只需下载 android sdk 并安装即可 安装android SDK之前必须先安装JDK 完成后安装成功 您将获得两个应用程序 SDK
  • Android,如何从 XML 布局添加 Google 地图选项?

    我有一个包含 MapView 的片段 我已将此视图添加到 XML 文件中 如下所示
  • 如何连接到Google Play服务并加载排行榜

    我想将我的游戏与 Google Play 服务连接 我已阅读有关 Android 开发人员的文档 并尝试遵循输入数字示例 但仍然无法加载排行榜 我有导入baseGameUtils 但我使用andengine 所以我没有使用来自谷歌的exte
  • 如何从画布中删除路径区域(Android)

    我需要裁剪角落ImageView 不要将它们弄圆 而是擦除每个角上的三角形 似乎唯一的方法就是覆盖onDraw方法并使用从画布上删除这些区域Path 问题是我没有纯色背景 所以我需要擦除这些区域 但不要用某种颜色填充它们 我为此使用以下代码
  • Android - 使用 SAX 解析器解析大文件

    我正在尝试使用 SAX 解析器解析来自 webservice 的 xml 数据 当我尝试使用 URL 解析数据 大小 7 4MB 时 它工作正常 但是当我从 URL 复制 xml 数据并放置 xml 文件时 size 7 4MB 在raw文
  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • 片段活动中的 commitAllowingStateLoss()

    我的应用程序使用片段活动 它仅处于纵向模式 无法旋转屏幕 最初我使用的是commit 方法 但现在我计划不加区别地将这些更改为commitAllowingStateLoss 对于碎片活动 是否有任何理由不不加区别地执行此操作而不重新评估我使
  • 如何防止应用程序被盗(针对Android应用程序)?

    我想知道防止人们窃取我的应用程序的最有效方法是什么 在线下载 apk 的副本而不是购买它 我已经花了一个lot特别是 Droidbox 上的时间 并且不会发布 Sync 直到我可以保证提供专业版本的非法副本的人无法发布 有人实施过这个吗 我
  • Fresco:滚动 RecyclerView 后图像消失

    我有一个 Horizo ntal RecyclerView 每个项目都有一个使用 Facebook Fresco 图像库加载到其中的图像 然而 虽然正确的图像最初是在屏幕上滚动一点时加载的 但当 RecyclerView 进一步滚动时 它就
  • 有没有办法创建 PWA(渐进式 Web 应用程序)的 Android 桌面小部件?

    我正在构建一个渐进式 Web 应用程序 有没有办法创建 Android 桌面小部件 None
  • 如何让surfaceview透明

    大家好 我想让我的 DrawingSurface 视图透明 我尝试了很多东西 但它不起作用 这是我的 xml 代码 使我的表面视图透明
  • Android:从 PhoneGap 应用打开 Play 商店链接

    我想从我的phonegap 3 4 应用程序打开一个指向Google Play 商店的链接 呼唤market details id com google android apps maps导致 ActivityNotFoundExcepti
  • Android - 检测视图上的双击和三次点击

    我一直在尝试构建一个可以检测双敲击和三敲击的敲击检测器 在我的努力失败后 我在网上搜索了很长时间以找到可以使用的东西 但没有运气 奇怪的是 像这样的图书馆如此稀缺 有什么帮助吗 你可以尝试这样的事情 尽管我通常建议不要使用三次点击作为一种模
  • 将主题应用到 v7 支持操作栏

    我正在使用support v7库来实现ActionBar在我的应用程序中 我的styles xml file
  • 使用 PDFBox 在 Android 中创建 PDF

    我正在尝试通过我的 Android 应用程序创建 PDFPDFBoxapi 但出现以下错误 java lang NoClassDefFoundError org apache pdfbox pdmodel PDDocument 我已经将以下

随机推荐

  • 秋招问题汇总

    1 Python变量作用域 xff1a 局部作用域 xff08 Local xff0c 简写为 L xff09 作用于闭包函数外的函数中的作用域 xff08 Enclosing xff0c 简写为 E xff09 全局作用域 xff08 G
  • 38、OpenCV之C++教程

    一 OpenCV的下载与安装 下载完成后会得到一个 opencv 3 4 15 vc14 vc15 exe 文件 点击运行后会生成一个文件夹 此文件夹为下一步工程创建使用 xff0c 文件夹可移动 复制和重命名 xff0c 这里命名如下 x
  • Java大数据之路--HDFS详解(3)--基本命令

    HDFS 分布式文件存储系统 基本命令 目录 HDFS 分布式文件存储系统 基本命令 一 常见命令 二 其他命令 一 常见命令 命令 说明 hadoop fs mkdir park 在hdfs 的根目录下 xff0c 创建 park目录 h
  • C# 连接 SqlServer 数据库

    目录 一 创建表 二 给表添加数据 三 新建 C 项目 四 SqlServerHelper 五 连接数据库 一 创建表 首先 xff0c 新建一个数据库 Test xff0c 然后新建一个表 Users xff0c 字段名如下图 xff0c
  • org.xml.sax.SAXParseException的错误解决 2020-11-20

    span class token number 2020 span span class token operator span span class token number 11 span span class token operat
  • JS如何优雅的删除对象中的指定属性?

    要优雅的话 xff0c 使用 Lodash 的 omit 方法移除不要的属性 xff1a const object 61 a 1 b 2 c 3 const result 61 omit object a c 61 gt b 2 或者用 p
  • python 使用 isdigit 判断字符串中是否只由数字组成

    span class token operator span span class token operator span span class token operator span span class token operator s
  • 快速排序详解(Java实现)

    一 快速排序的基本思想 每一轮的排序都会将区域分割成两个独立的分区 xff0c 其中左分区的序列的所有值均会比右分区的所有值小 然后对子分区进行同样的分割操作 xff0c 最后达到整体有序 在排序的过程中 xff0c 由于已经分开的两部分的
  • A*算法路径规划之Matlab实现

    A 算法路径规划之matlab实现 A 算法是一种传统的路径规划算法 xff0c 相较于Dijkstra算法 xff0c 其引入了启发式算子 xff0c 有效的提高了路径的搜索效率 主要步骤包括 xff1a 1 xff09 设置起始点 目标
  • C语言中‘a‘和“a“有什么区别?

    1 本质区别 双引号里面的是字符串 xff0c 而单引号里面的代表字符 2 输出区别 str 61 a 输出的就是a这个字母 xff1b str 61 a 输出的测试65 3 底层区别 用单引号引起的一个字符实际上代表一个整数 xff0c
  • linux VNC客户端登陆失败

    vnc登陆出现 Unknown authentication scheme from VNC server 解决办法 xff08 建议在做操作之前重启vnc server xff0c 密码输错过多可能导致一直连接失败 xff09 https
  • win 10 mstsc连接 RemoteApp

    本文是关于mstsc客户端的配置 xff08 服务端的配置本文不描述 xff09 xff0c 前提是服务端配好 xff0c 知道RemoteApp怎么玩的 windows 2008 的mstsc有个配置 xff0c 关于程序 的tab页 但
  • 贪心算法的改进

    关于贪心算法 xff0c 请看我的上一篇博客 解决贪心算法的复杂度 为解决贪心算法的复杂度 本文提出 xff1a 通过分解极大联通子图去寻找影响力最大的节点的算法 强连通 xff1a 在有向图G中 xff0c 如果任意两个不同的顶点相互可达
  • 非关系型数据库-redis应用场景

    关系型数据库与非关系型数据库 redis的应用场景 xff1a 1 redis由于数据的读取和操作都在内存当中操作 xff0c 读写的效率较高 xff0c 所以经常被用来做数据的缓存 把一些需要频繁访问的数据 xff0c 而且在短时间之内不
  • Linux创建用户后,登录报错/usr/bin/xauth: file /home/user/.Xauthority does not exist

    错误信息如下 usr bin xauth span class token function file span home user Xauthority does not exist 错误原因 是因为添加用户时没有授权对应的目录 xff0
  • VSCode测试ES6语法

    一 VsCode使用 1 1 VsCode基本操作 Alt 43 Shift 43 F格式化代码 二 ES6新特性 2 1 let声明常量 2 2 const声明常量 只读变量 2 3 解析表达式 2 3 1 数组解构 2 3 2 对象解构
  • VNC远程连接树莓派报错问题解决(文末有惊喜呦)

    用VNC远程连接树莓派 xff0c 出现拒绝连接 问题原因 xff1a 只设置了PC端的服务器 xff0c 但是没有在树莓派端开端口 解决办法 xff1a 用putty或者xshell连接树莓派 xff0c 输入命令 xff1a vncse
  • ReadFile函数

    函数功能 xff1a 该函数从文件指针指示的位置开始从文件读数据 xff0c 在读操作完成后 xff0c 如果文件句柄不是用重叠属性来创建 xff0c 则文件指针用实际读的字数来调整 如果文件句柄为重叠的输入和输出 xff08 I O xf
  • error MSB8041: 此项目需要 MFC 库。从 Visual Studio 安装程序(单个组件选项卡)为正在使用的任何工具集和体系结构安装它们。

    最近新安装了vs2019企业版 xff0c 用vs打开vs2015的工程出现如下错误 xff1a error MSB8041 此项目需要 MFC 库 从 Visual Studio 安装程序 单个组件选项卡 为正在使用的任何工具集和体系结构
  • PC和Android模拟器之间虚拟串口通信

    前言 很多时候我们在做串口通信的时候需要去模拟串口来调试 xff0c 这样可以极大的方便我们的工作 xff0c 不然的话可能需要连接硬件设备 xff0c 比较麻烦 一般情况下我们先在电脑上模拟串口后初步调试 xff0c 最后阶段在硬件设备上