我是 Java 的初学者。我正在从串行端口读取数据。我得到了
serialPort.setSerialPortParams(
9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
9600
、DATABITS_8、STOPBITS_1
和 PARITY_NONE
是什么意思?
最佳答案
9600, DATABITS_8,STOPBITS_1 and PARITY_NONE
9600 BAUD :波特是符号或每秒脉冲数的同义词。在这种情况下,它指的是每秒传输的位数。
DATABITS _8:一次传输8位数据。这是典型的,因为现在大多数机器都有 8 位字节。
STOPBIT S_1:尾部加一个bit,表示单词结束。
PARITY_NONE:否parity包括位。这是一个错误检查功能。对于偶校验,如果它会使位的总和为偶数,则添加 1,对于奇校验,反之亦然。有时也使用标记和空间奇偶校验。 RS-232 是一种低级协议(protocol),错误检查通常留给应用层。 checksum或 CRC由于这个原因,通常包含在串行数据包中。例如,以太网对其数据帧使用 32 位 CRC,但应用程序开发人员从不关心它。
在 RS-232 通信中,始终包含一个起始位。 universal asynchronous receiver/transmitter (UART) -- 这个 Java 库将控制的硬件 -- 查找这个标记,然后开始将数据位移入缓冲区。因此,传输中的每个字将占用 10 位:1 位起始位 + 8 位数据位 + 1 位停止位。在 9600 波特率下,这将为您提供每秒 960 字节的最大数据传输速率,即使将发送相当于 1200 字节的数据:每秒 9600 位除以每个字 10 位得出每秒 960 字和 8 个数据位( 1 字节)每个字。
您正在使用的此配置通常会缩写为 9600,8,N,1,依次表示速度、数据位、奇偶校验位和停止位。
关于java - Java中串口参数的含义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/391127/