新学期开始,老师出个题,让我写个串口通信程序,因为我学的是java,所以就采用java语言。在百度上搜索了一番,找到了一些资料,然后就在别人的demo上面做修改。
<hr>
由于我的机器是win7 64位系统,而sun公司的javax.comm包没有支持64位的,而且sun公司已经停止了对其更新,所以我采用rxtx开源包
RXTX的旧版本支持在javax.comm-win32-2.0基础上的扩展,RXTX新版本支持对javax.comm的覆盖式支持,原来用javax.comm的把所有import javax.comm.*改成import gnu.io.*即可。
通过CommPort类的getInputStream()和getOutputStream()方法分别获得端口的输入流和输出流
串口通信应用程序有两种模式:一种是实现SerialPortEventListener接口,通过监听串口事件并作相应处理
另一种就是建立一个独立的接收线程负责数据的接收。
最基本的串口通信很快通过网上的程序实现了简单的一发一收效果,接着就是完成老师提供的文档协议的通信要求。
首先是将待发送的数据封装成帧,帧的格式如图: