Pregunta

Quiero enviar mensajes a través del puerto serie con PySerial. Uno de los parámetros para el constructor de serie es 'ByteSize'. He estado tratando de serial.SEVENBITS y serial.EIGHTBITS y no he notado una diferencia. La documentación es un poco vaga y yo soy nuevo en tanto Python y comunicación en serie. ¿Esto acaba de establecer el valor máximo un byte puede contener o es algo que ver con bytes firmados? ¿Alguien puede aclarar por qué me gustaría usar más de 7 bits 8? He estado buscando pero no he encontrado una respuesta.

Gracias

¿Fue útil?

Solución

Esto se refiere al número de bits de datos en cada carácter transmitido. De Wikipedia :

  

Los bits de datos

     

El número de bits de datos en cada   personaje puede ser de 5 (para el código Baudot),   6 (muy poco frecuente), 7 (por cierto ASCII), 8   (Para cualquier tipo de datos, ya que este coincidencias   el tamaño de un byte) o 9 (raramente   usado). 8 bits de datos son casi   universalmente utilizado en nuevos   aplicaciones. 5 o 7 bits generalmente   sólo tienen sentido con equipos más antiguos   tales como teletipos.

     

La mayoría de los diseños de comunicaciones serie   enviar los bits de datos dentro de cada byte   LSB (bit menos significativo) en primer lugar.   Esta norma también se conoce como   "Little Endian". También es posible, pero   rara vez se utiliza, es "big endian" o MSB   (Bit Más Significativo) primera serie   comunicaciones. (Ver Endianness de   más sobre la ordenación de bits.) El orden de   los bits no suele ser configurable, pero   datos puede ser intercambiado por bytes sólo antes   el envío.

Otros consejos

Históricamente, era común a enviar sólo texto ASCII a través de una conexión en serie, que encaja en siete bits, y un octavo bit se utiliza como marcador de paridad que podría indicar si los datos se están transmitiendo correctamente.

Dado que la comprobación de paridad no detectar errores en un número par de bits, y no puede corregir los datos en absoluto, que no es tan valiosa, y la práctica moderna es el uso de datos de 8 bits y realizar la detección y corrección de errores en una capa más alta de protocolo.

Breve respuesta es probablemente quiera de 8 bits, pero depende de lo que el otro extremo de la conexión en serie está a la espera.

Actualización: Desde su otra pregunta suena como que está programando ambos extremos de la conexión, y la suma de comprobación sus mensajes, por lo que es definitivamente más fácil de usar 8 bits.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top