Java中串口参数的含义?

问题描述 投票:0回答:3

我是Java初学者。我正在从串口读取数据。我得到了

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

9600
DATABITS_8
STOPBITS_1
PARITY_NONE
是什么意思?

java serial-port
3个回答
10
投票

9600、DATABITS_8、STOPBITS_1 和 奇偶校验_无

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

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

STOPBITS_1:添加一个尾随位以标记单词的结尾。

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

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

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


2
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.