热门关键字:
jquery > jquery教程 > jquery教程 > Android模拟器挂载虚拟串口进行通信之踩坑记

Android模拟器挂载虚拟串口进行通信之踩坑记

792
作者:管理员
发布时间:2021/4/22 17:39:34
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=4544
  1 准备


  依照上篇博客的指引,需要准备以下工具:


  1)虚拟串口工具


  下载虚拟串口工具,可以下载参考文章中提供的链接,也可以直接百度搜索下载


  安装并运行工具,并添加一对串口


  2)串口调试工具


  下载串口调试工具,百度一搜一大把,我使用的是这个:


  直接运行exe就可以打开窗口,分别打开两个窗口去打开串口,测试两个串口之间的通信


  2 动手


  这个流程是本人亲测有效的,但不排除在其他人手里会出现问题。就像我最开始也是照着他人的博客撸的,但人家就是成功的到我这儿就不行了,我也很绝望的


  1)准备模拟器


  准备Android 4.4版本的模拟器,下载的是x86且不带Google APIs的system image


  2)挂载串口


  如果要挂载的模拟器和串口是打开的,则需要关闭才能挂载成功


  打开cmd,进入AndroidSDK的目录下的tools目录,执行以下命令


  emulator -avd Pixel_3a_XL_API_19 -writable-system -qemu -serial COM1


  1


  将其中的模拟器和串口的名称替换为自己的就好了,我这里是将COM1挂载到Pixel_3a_XL_API_19的模拟器上


  没问题的情况下就能启动模拟器了,端口设置保持默认的就好了,点击确定就OK了


  3)运行Demo


  从下载一个别人写好的项目,运行起来,查看效果。


  检测出4个地址,发现只有ttyS0和ttyS1能打开,ttyS1能和COM2成功通信,ttyS0不行。看网上的说法,貌似都不一样,不知道原理是啥


  3 踩坑


  看步骤貌似挺简单的,但由于在下知识匮乏,实施起来各种坑


  1)报错:‘emulator’ 不是内部或外部命令


  如果没有配置环境变量,会报:‘emulator’ 不是内部或外部命令 的错误。可以去配置,也可以进入安装的AndroidSDK下的tools目录下执行命令。


  2)使用Android Studio自带的模拟器,第三方模拟器暂时不知道怎么使用


  3)模拟器的名称


  模拟器的名称的查看有两种方式:


  a) 查看目录


  我这边的目录是C:\Users\Shirley\.android\avd,一般应该都能在C盘的用户目录下找到。android文件夹


  b) cmd命令


  输入以下指令也能查看模拟器列表


  emulator -list-avds


  1


  3)报错:Missing emulator engine program for ‘x86’ CPU


  参考博客的指引,重新下载不带Google APIs的x86 Images, 然后再重启终端,重新输入命令


  4)报错:Failed CreateFile (5)


  #——#网上资料找找找,据悉返回5表示串口被占据了,需要关闭串口才能成功


  注意,串口和模拟器都必须要关闭


  5)关于模拟器的版本和Root的问题


  最开始是使用Android 10.0 模拟器,连接上了但运行测试程序时结果还是失败。网上说模拟器要Root才行


  然后开始给模拟器获取Root权限。找了个教程,教程是使用Android 8.0的,于是捣鼓了半天,结果终于在Android 8.0 的模拟器上Root成功,运行Demo时有四个串口地址,只有ttyS0可以打开,但是却不能通信。


  后来想到是不是Android版本的问题,于是又试了Android 7.0 的,还是不行


  各种想想想,各种找找找,最后看到一篇博客中使用Android 4.4,然后就试了下Android 4.4 版本的模拟器,结果一试就成功了,哈哈哈。还发现原来4.4的模拟机是root过了的,直接挂载串口就行了。




如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:jquery
友荐云推荐