在安卓/linux环境下如何同时与多个串口进行通讯?

问题描述

在安卓环境下同时打开两个串口 其中一个收到指令后发送指令到另一个串口 但是第二个串口的命令会出现阻塞现象 经常会返回乱码或者两条指令合并为一条发送

问题出现的环境背景及自己尝试过哪些方法

环境为rk3288开发板 Android5.0操作系统 串口为ttl电平 接口使用的是网上流传最广的谷歌android-serialport-api编译的jni库 添加打开串口命令的flags参数O_NONBLOCK(非阻塞模式)之后没有任何帮助 在Windows系统下测试没有任何问题

相关代码

mFd = open(path, baudRate, O_NOCTTY | O_NONBLOCK);

你期待的结果是什么?实际看到的错误信息又是什么?

希望两个串口能够同时工作不受IO阻塞的干扰

阅读 4.5k
2 个回答

我了个擦 最后打了安卓主板厂商技术支持电话才知道 两个TTL不能同时使用。。。 所以并不存在“同时使用两个串口需要注意哪些问题”这个命题

当多个串口时, 你 open 函数的 path 参数不一样就可以了

比中我机器上的串口路径:

$ls /dev/tty*
/dev/tty.Bluetooth-Incoming-Port 
/dev/tty.maciPhone-WirelessiAP 
...
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏