安卓串口操作,在网上一定会找到很多关于谷歌的开源项目,把它的源码拿过来之后,经过编译发现无法读取数据。
接下来就是寻找收发数据失败原因的过程。
1、在Application中出现InvalidParameterException的异常,判断条件是
if ( (path.length() == 0) || (baudrate == -1)) 果断将path和baudrate的值写死,我在项目中这样写就ok。
String path = "/dev/ttyS1";
int baudrate = 9600;第一个问题迎刃而解,串口可以正常初始化。
2、连续几天我就发现安卓设备只能发数据,不能从PC端的串口调试助手中获取数据。
到网上查找原因,很多小伙伴都存在这样的问题,发现程序只能走到size = mInputStream.read(buffer);
就像被阻塞住了一样。其实不是这样的,今天发现是我的串口接线接错了。串口的2 、 3分别是收发(顺序不一定对),但是一定要交叉接线设备的2和PC的3连接设备的3和PC的2连接现在可以进行收发数据,但是可能还存在问题,一下子不能全部收全数据,问题待继续解决。源码下载地址