java 串口通信读取电子秤

1、在网上下载RXTXcomm.jar、rxtxParallel.dll、rxtxSerial.dll,有32位和64位的版本

2、把rxtxParallel.dll、rxtxSerial.dll拷贝到:C:\WINDOWS\system32下。

3、把RXTXcomm.jar、rxtxParallel.dll、rxtxSerial.dll拷贝到 jdk1.8.0_131\jre\lib\ext下;
     如:C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext

4、替换采样程序目录下的libs文件夹下的 RXTXcomm.jar

//打开串口 根据串口名、波特率
private static void openSerialPort()
{
    //读取可用端口
    commList = findPort();
    // 检查是否有可用串口,有则加入选项中
    if (commList == null || commList.size() < 1) {
        System.out.println("没有搜索到有效串口!");
        WriteLog("没有搜索到有效串口", "", "");
    } else {
        String CanUserCom = "";
        for (String s : commList) {
            CanUserCom += "  " + s;
        }
        WriteLog("搜索到有效串口:" + CanUserCom, "", "");
        WriteLog("连接电子秤时请确认波特率、数据位、停止位、奇偶校验等信息是否匹配!", "", "");
    }

    // 检查串口名称是否获取正确
    if (Common.CommName == null || Common.CommName.equals(""))
    {
        WriteLog("串口设置为空,请检查配置","","");
        System.out.println("串口设置为空,请检查配置!");
    }
    else
    {
        WriteLog(Common.CommName + "打开串口中、波特率:"+Common.BaudRate+"、数据位:"+Common.DataBits+"、停止为:"+Common.StopBits+"、奇偶校验:"+Common.CheckChar, "", "");
        String commName = Common.CommName;//串口
        int baudrate = Integer.valueOf(Common.BaudRate); //波特率
        int DataBits = Integer.valueOf(Common.DataBits); //数据位、
        int StopBits = Integer.valueOf(Common.StopBits); //停止为

        //奇偶校验位数据转换
        //无:0、奇数:1、偶数:2
        int ParityBits = 0; //奇偶校验
        switch (Common.ParityBits)
        {
            case "无":
                ParityBits = 0;
                break;
            case "奇":
                ParityBits = 1;
                break;
            case "偶":
                ParityBits = 2;
                break;
        }

        try
        {
            serialport = openPort(commName, baudrate,DataBits,StopBits,ParityBits);
            if (serialport != null)
            {
                WriteLog(commName + "串口已打开", "", "");
                System.out.println("串口已打开" + "\r\n");
               WriteFromPort(serialport);
            }
        } catch (SerialPortParameterFailure e) {
            e.printStackTrace();
        } catch (NotASerialPort e) {
            e.printStackTrace();
        } catch (NoSuchPort e) {
            e.printStackTrace();
        }
        catch (PortInUse e)
        {
            e.printStackTrace();
            System.out.println("串口已被占用!");
            WriteLog(commName+"串口已被占用","","");
            JOptionPane.showMessageDialog(null, "打开失败!串口已被占用或者软件已打开。", "提示", JOptionPane.ERROR_MESSAGE);
            logger.error("串口已被占用:" + e.getMessage(), e);
        }
    }

    try {
        addListener(serialport, new SerialListener());
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值