我是Java的初学者。我正在从串口读取数据。我有
serialPort.setSerialPortParams(
9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
和的含义是9600
什么?DATABITS_8,STOPBITS_1
PARITY_NONE
我是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 和 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以表示速度、数据位、奇偶校验和停止位。
当你说你“得到serialPort.setSerialPortParams(....”时,你从哪里得到的?如果你想了解方法的参数,请参阅javadoc
如果您不熟悉串口,请阅读http://www.beyondlogic.org/serial/serial.htm