如何使用Android模拟器实现windows虚拟串口通信调试

如何用Android模拟器调试串口

一、安装虚拟串口软件

虚拟串口软件推荐 Virtual Serial Port Driver 官网和 Virtual Serial Port Kit 官网 都可以免费试用15天。

这里以Virtual Serial Port Driver为例,打开安装好的Virtual Serial Port Driver,点击添加端口,会生成一对端口号,例如COM1、COM2。

测试虚拟串口是否正常工作

为了测试虚拟串口设备是否能正常工作,我们可以使用串口调试助手进行测试,这里以 友善串口调试助手 为例运行两个调试助手,端口选择与上图对应,其他配置需要一致,测试数据的收发是否正常。

二、AndroidStudio 模拟器挂载串口

先说结论,不推荐使用AndroidStudio自带的模拟器进行串口调试,因为实际测试中发现,当模拟器接收超过8字节的数据后会卡死闪退。一开始以为是代码哪里写的有问题,其实是谷歌官方的bug。

2.1 Android模拟器安装

从Android5.0之后,模拟器就默认没有root权限了,所以我们要安装一个带root权限的模拟器,在创建模拟器选择镜像的时候,选择名称中不带Google APIs的即可

2.2 映射串口到模拟器

首先进入AndroidSDK下的tools目录

Win + R 运行cmd 转到AndroidSDK下的tools目录,然后通过命令行方式启动模拟器

例如:第一步

cd AppData\Local\Android\Sdk\tools 根据自己的文件所在的路径

第二步

.\emulator.exe -avd 模拟器名称(Pixel_4a_API_31) -writable-system -qemu -serial 创建的虚拟串口设备端口(COM1)

也可以将以上代码复制到文本文件中保存,并修改后缀名为.cmd,以后双击即可启动

当出现这个界面时,属于正常启动,然后根据你需要的值来设置,一般默认设置就好。

成功启动后的模拟器会有这个提示

报以上错误是因为AndroidStudio模拟器没有启动,要让模拟器启动然后再关闭。

出现这个错误时是因为串口助手里面已经占用了,要先把他关掉

2.3 打开模拟器串口权限

映射成功后,打开串口可能会报SecurityException异常,这是因为没有读写权限,安装带root的模拟器也是为了这一步。这里以 /dev/ttyS0为例

执行以下命令:

.\adb.exe root

.\adb.exe shell

setenforce 0

chmod 777 /dev/ttyS0

这里设置四个端口号都打开权限,设置完成之后就可以正常接收数据了。

这里以GitHub上的一个demo举例。

按照前面的步骤设置完成后,在模拟器上启动demo,即可进行数据的接收。

 

demo地址:https://github.com/xmaihh/Android-Serialport

posted @ 2023-08-15 16:49  空空如我所愿  阅读(468)  评论(0编辑  收藏  举报