将数据写入串口,发送错误的字符

时间:2014-05-05 22:20:40

标签: java serial-port jssc

当监控发送到设备的数据时,我得到: http://i.stack.imgur.com/u0kIT.png

但我希望有一个字符:F0ð

 public void WritingDataToPort() {
        SerialPort port = new SerialPort("COM26");
        try {
            System.out.println(port.openPort());
            port.setParams(9600, 8, 1, 0);
            port.writeString((char)240+""));
            port.closePort();
        } catch (SerialPortException ex) {
            System.out.println(ex);
        }
 }

我完全不知道如何发送这个“ð”字符。尝试了所有ascii代码。

2 个答案:

答案 0 :(得分:2)

您不能通过串口发送char(或UTF8)。你必须转换它。 首先以UTF-8获取char的长度,然后获取字节并发送字节。

获取UTF-8的大小:Getting the actual length of a UTF-8 encoded std::string?

然后逐个发送。另一方面,你需要一些东西来组装它们。

您还可以考虑使用更好的替代方法直接将字节写入端口,例如http://code.google.com/p/java-simple-serial-connector/

答案 1 :(得分:0)

你可以试试unicode。 UTF-8代码。

http://www.fileformat.info/info/unicode/char/f0/index.htm

C/C++/Java source code  "\u00F0"