我是Java的初学者。我正在从串口读取数据。我得到了
serialPort.setSerialPortParams(
9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
9600
,DATABITS_8,STOPBITS_1
和PARITY_NONE
的含义是什么?
答案 0 :(得分:10)
9600,DATABITS_8,STOPBITS_1和 PARITY_NONE
9600 BAUD :波特与每秒符号或脉冲同义。在这种情况下,它指的是每秒传输的位数。
DATABITS _ 8 :一次传输8位数据。这是典型的,因为现在大多数机器都有8位字节。
STOPBIT S_1 :添加一个尾随位以标记单词的结尾。
PARITY_NONE :不包含parity位。这是一个错误检查功能。对于偶校验,如果对于奇校验,它将使比特的总和为偶数,反之亦然。有时也使用标记和空间奇偶校验。 RS-232是一种低级协议,错误检查通常留给应用层。出于这个原因,串行数据包中通常包含checksum或CRC。例如,以太网对其数据帧使用32位CRC,但它从不涉及应用程序开发人员。
在RS-232通信中,始终包括起始位。一个universal asynchronous receiver/transmitter (UART) - 这个Java库将控制的硬件 - 查找该标记,然后开始将数据位移入缓冲区。因此,传输中的每个字将占用10位:1个起始位+ 8个数据位+ 1个停止位。在9600 BAUD,这将为您提供每秒960字节的最大数据传输速率,即使相当于1200字节将被发送:每秒9600位除以每字10位,每秒产生960字8位数据(每个字1个字节。
对于速度,数据位,奇偶校验和停止位,您正在使用的此配置通常缩写为 9600,8,N,1 。< / p>
答案 1 :(得分:2)
当你说“得到serialPort.setSerialPortParams(....”,你在哪里得到它?如果你想了解方法的参数,请参阅the javadoc
答案 2 :(得分:0)
如果您不熟悉串口,请阅读http://www.beyondlogic.org/serial/serial.htm