树莓派中使用java rxtx实现串口通信,获取的可用串口是/dev/ttyS0,但是硬件说要用/dev/ttyAMA0,但是rxtx获取的可用串口为/dev/ttyS0.
public Set<CommPortIdentifier> getPortList() {
Enumeration tempPortList; // 枚举类
CommPortIdentifier portIp;
tempPortList = CommPortIdentifier.getPortIdentifiers();
while (tempPortList.hasMoreElements()) {
// 在这里可以调用getPortType方法返回端口类型,串口为CommPortIdentifier.PORT_SERIAL
portIp = (CommPortIdentifier) tempPortList.nextElement();
System.out.println("++++++++++++++++++"+portIp.getName());
portList.add(portIp);
}
return portList;
}
以上代码执行结果是获取了一个/dev/ttyS0
请问有人知道是什么问题吗。
RXTX只支持 /dev/ttyS 开头的,所以你可以 ln -s /dev/ttySxx /dev/ttyAMA0 ,然后代码里用 ttySxx 就好了。