通过串口发送命令

嵌入式系统或传感器网络的很多应用和测试都需要通过PC机与嵌入式设备或传感器节点进行通信。其中,最常用的接口就是RS-232串口和USB接口(并口)。鉴于USB接口的复杂性以及不需要很大的数据传输量,现模块中使用了串口进行通讯。
其中SUN的CommAPI分别提供了对常用的RS232串行端口和IEEE1284并行端口通讯的支持。RS-232-C(又称EIA RS-232-C,以下简称RS232)是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它是一个全双工的通讯协议,可以同时进行数据接收和发送的工作。
目前,常见的Java串口包有SUN在1998年发布的串口通信API:comm2.0.jar(Windows下)、comm3.0.jar(Linux/Solaris);IBM的串口通信API以及一个开源的实现。现模块中使用了comm3.0.jar(Linux/Solaris)串口包进行串口通讯。
首先需要打开串口,如下所示:
CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(“串口名”);
try {
SerialPort sPort = (SerialPort) portId.open("串口所有者名称", 超时等待时间);
} catch (PortInUseException e) {//如果端口被占用就抛出这个异常
throw new SerialConnectionException(e.getMessage());
}

然后使用InputStream从串口读取数据,使用OutputStream向串口写入数据,如下所示:
try {
in = serialPort.getInputStream();
out = serialPort.getOutputStream();
} catch (IOException e) {
return InitFail;
}

最后设置初始化通讯参数,分别为波特率、输入/输出流控制、数据位数、停止位和齐偶校验。这里设置为9600, N, 8, 1:
try {
serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {
return InitFail;
}

经过以上的初始化工作就可以通过调用in. read()以及out.write(char)进行数据读取及发送工作了。该模块同样通过调用out.write(char)向外网设备发送AT命令及PDU数据包,通过in.read()读取从外网设备返回的数据。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值