5

我是Java的初学者。我正在从串口读取数据。我有

serialPort.setSerialPortParams(
   9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, 
   SerialPort.PARITY_NONE); 

和的含义是9600什么?DATABITS_8,STOPBITS_1PARITY_NONE

4

3 回答 3

10

9600、DATABITS_8、STOPBITS_1 和 PARITY_NONE

9600 BAUD:波特是每秒符号或脉冲的同义词。在这种情况下,它指的是每秒传输的位数。

DATABITS _8:一次传输 8 位数据。这是典型的,因为现在大多数机器都有 8 位字节。

STOPBIT S_1:添加一个尾随位以标记字的结尾。

PARITY_NONE:不包括奇偶校验位。这是一个错误检查功能。对于偶校验,如果它会使位的总和为偶数,则添加 1,反之亦然,对于奇校验。有时也使用标记和空间奇偶校验。RS-232 是一种低级协议,错误检查通常留给应用层。出于这个原因,串行数据包中通常包含校验CRC 。例如,以太网对其数据帧使用 32 位 CRC,但它从不涉及应用程序开发人员。

在 RS-232 通信中,总是包含一个起始位。通用异步接收器/发送器 (UART) ——这个 Java 库将控制的硬件——寻找这个标记,然后开始将数据位转移到缓冲区中。因此,传输中的每个字将占用 10 位:1 个起始位 + 8 个数据位 + 1 个停止位。在 9600 波特率下,即使发送相当于 1200 字节的数据,这将为您提供每秒 960 字节的最大数据传输速率:每秒 9600 位除以每字 10 位得到每秒 960 字和 8 个数据位( 1 个字节)每个字。

您正在使用的此配置通常缩写为9600,8,N,1以表示速度、数据位、奇偶校验和停止位

于 2008-12-24T16:19:49.780 回答
2

当你说你“得到serialPort.setSerialPortParams(....”时,你从哪里得到的?如果你想了解方法的参数,请参阅javadoc

于 2008-12-24T10:02:07.343 回答
0

如果您不熟悉串口,请阅读http://www.beyondlogic.org/serial/serial.htm

于 2011-09-23T12:53:32.800 回答