通过串口发送数据

Sending data by serial port

我正在尝试将数据发送到我拥有的设备的串行端口,并将该设备串行连接到我的 PC。在我的 PC 中,我试图通过终端应用程序接收数据。该设备正在使用 J2ME,下面给出了我用来连接到 com 端口的代码。

public boolean connect() {
    if (bConnected) {
        return true;
    } else {
        try {
            StringBuffer strCom = new StringBuffer(80);
            strCom.append("comm:" + strCOMPort
                    + ";blocking=on;autocts=off;autorts=off;stopbits=");
            //autocts=on;autorts=on;
            strCom.append(stopbits);
            strCom.append(";bitsperchar=");
            strCom.append(bitsperchar);
            //strCom.append(";parity=");
            //strCom.append(parity);
            strCom.append(";baudrate=");
            strCom.append(baudrate);

            commConn = (CommConnection) Connector.open(strCom.toString());
            writeStatusToFile(
                    "CommConnection(" + strCom.toString()
                            + ") with device opened.");
            strCom = null;
            inStream = commConn.openDataInputStream();
            outStream = commConn.openOutputStream();
            inStream.skip(inStream.available());
            bConnected = true;
            return true;
        } catch (Exception IOe) {
            writeStatusToFile(
                            "Opening COM0 IOException :" + IOe.getMessage());
            return false;
        }
    }
}

我使用的向串口写入数据的代码如下。

public void sendData(short[] message){
    String bytedata = "";
    try
    {
        System.out.println("Length of message array: " +  message.length);
        for(int i = 0; i<message.length; i++){
            System.out.println("Data: " +message[i]);
            bytedata += message[i];
            outStream.write(message[i]);
            System.out.println("Done");
        }
    //outStream.write(message);
    outStream.flush();
    }
    catch(Exception ex)
    {
        System.out.println("Exception during sending bytes--->" + ex.toString());
        ex.printStackTrace();
    }
            System.out.println(
            "Data flushed to output stream: " + bytedata);
}

设备的 COM 设置为 COM0,波特率为 4800,奇偶校验为 none,每个字符的位数为 8,停止位为 1(这些值已全局初始化)。我在从 COM 端口接收数据的终端应用程序中设置相同。

我面临的问题是,当我连接到串口时,我的电脑没有收到任何信息。我想知道我是否在代码逻辑上有任何错误。欢迎任何有助于我分析问题的建议。如果需要任何其他信息,请说明。

这个问题与我的应用程序试图访问的串行端口是 RS232 类型的事实有关,这种类型的串行端口只允许线程访问该端口,因此我看不到日志和 out 一起显示。 请注意,这不是解决方案,而是一个原因