Android模拟器使用PC端USB转串口调试

9 篇文章 0 订阅
7 篇文章 3 订阅

连接好线路之后,我就迫不及待地把开发板插上电脑,可能是由于自己电脑的缘故,驱动安装失败。 
此时右键点击计算机,点击属性,打开设备管理器,展开端口。 
查看端口  
有感叹号的表示驱动程序未安装,右键选择属性,再切换到驱动程序一项,安装或者更新驱动程序。 
驱动程序  
然后点击高级,把端口设置为COM1/COM2。因为发现使用其它端口根本无法启动模拟器,也没找到原因。 
上面的步骤搞定之后,就可以开始连接模拟器调试了。 
首先,创建一个模拟器,建议SDK为API23以下的,因为我使用的API23创建了模拟器,怎么都无法 
通信,前车之鉴,不过大家也可以试一下,也许是我这边存在的问题。 
模拟器创建完成,就需要挂载端口启动模拟器了。 
运行cmd,进入Android sdk目录下的tools。比如我所在的目录为D:sdk/tools,输入cd D:sdk/tools回车即可。 
-emulator @模拟器名 -qemu -serial COM1 回车,就是这么简单。模拟器未成功启动,说明配置还有问题,再去找找原因。 
模拟器成功启动后就要开始与端口进行通信了,打开DDMS,我发现dev目录下有ttyS0,ttyS1,ttyS2,ttyS3等多个文件,究竟哪一个是可以与端口通信的?很多人说是ttyS2,我尝试使 
用ttyS2。那么在打开端口通信之前,首先要确保有ttyS2的读写权限。 
修改文件读写权限:运行cmd, adb shell cd dev chmod 777 ttyS2。使用这种方式修改 
ttyS2的权限只能单次生效,然后运行就报错了,然后就用到了下面的方法。 

/* 检查文件是否存在以及文件的读写权限 */ 
if (device != null && device.exists()) { 
    if (!device.canRead() || !device.canWrite()) { 
        try { 
            Log.e(TAG, “Test device name: ” + device.getName()); 
            /* 没有读写权限,动态修改权限 */ 
            Process su; 
            su = Runtime.getRuntime().exec(“/system/xbin/su”); 
            String cmd = “chmod 666 ” + device.getAbsolutePath() + “\n” 
            + “exit\n”; 
            su.getOutputStream().write(cmd.getBytes()); 
            if ((su.waitFor() != 0) || !device.canRead() 
            || !device.canWrite()) { 
                throw new SecurityException(); 
            } 
        } catch (Exception e) { 
            e.printStackTrace(); 
            throw new SecurityException(); 
        } 
    } 
}
*  
解决读写权限的问题后,就可以开始验证哪个文件才是我们需要用来通信的了,最终发现 
ttyS0是我所需要的,可以愉快的开发调试了。 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-每天进步一点点-

你的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值