Página 1 de 1

Problema com bit de Paridade

MensagemEnviado: 30 Nov 2020 16:00
por ÁgioFelipe
Olá pessoa, estava testando as configurações possíveis para a serial do arduino (8N1, 8E1, etc) quando me deparei com o seguinte problema:
Ao habilitar o bit de paridade, o resultado observado para ele está invertido.

Aqui o código utilizado:
Código: Selecionar todos

void setup() {
                                //Foram testadas essas 3 opções:
   Serial.begin(9600);
  //Serial.begin(9600,SERIAL_8E1);
  //Serial.begin(9600,SERIAL_8O1);
 
}

void loop() {
 
  Serial.print('a');
  delay(500);

}


Quando utilizo Serial.begin(9600), que seria 8N1, observo o seguinte valor no osciloscopio do Proteus:

Imagem

Que e equivale a 0 (start bit) 10000110 (dado) 1 (stop bit)
O que está correto.

Já quando utilizo Serial.begin(9600,SERIAL_8E1) o bit de paridade está invertido:

Imagem

Nessa imagem temos:
0 - start bit
10000110 - dado
0 - bit de paridade
1 - stop bit

Como estamos utilizando a paridade par (8E1), o bit de paridade para o dado 10000110 é 1 e não 0.

A mesma inversão ocorre quando utilizo Serial.begin(9600,SERIAL_8O1);
Imagem

O bit de paridade que era para ser 0 está sendo 1.

Aguardo seus comentários!

Re: Problema com bit de Paridade

MensagemEnviado: 30 Nov 2020 18:49
por cfreund
Meu amigo, você ta perdendo tempo com algo que não vale a pena. Bit de paridade não funciona.

Re: Problema com bit de Paridade

MensagemEnviado: 01 Dez 2020 07:54
por KrafT
Eu já precisei comunicar com equipamentos que usavam paridade na comunicação serial, e deixei o hardware do mcu fazer isso por mim e não tive problemas.

Mas a combinação Arduino + Proteus me embrulha o estômago... Teria que olhar num osciloscópio de verdade o que está acontecendo.