Em um sistema incorporado, eu uso um GPS com outros dispositivos conectados em 3 UARTs. Quando uso o comando cat ou minicom com UARTs / dev / ttyUSB0 e outros, perco caracteres (recebo caracteres nulos em vez de caracteres excluídos).
/ dev / ttyUSB0: mensagens binárias em 200Hz (230400 bauds)
/ dev / ttyS2: mensagem NMEA a 1 Hz (115200 bauds)
/ dev / ttyS1: mensagem NMEA a 2 Hz (115200 bauds)
Às vezes em / dev / ttyS2:$GPZDA,5[00]5519.00,14,12,2016,,*69[0D][0A]
Às vezes em / dev / ttyS1:$GPGGA,155513.50,...,472[00]79,M,2.4,0120*65[0D][0A]
A média de carga é de 0,14, 0,11, 0,04.
Gostaria de saber se existe uma opção no kernel para melhorar isso?
Eu uso o kernel 3.11.6
obrigado
Nota: Se eu definir a taxa de transmissão em 19200 para / dev / ttyS1 e / dev / ttyS2, o problema desaparecerá para essas portas seriais.
Nota 2: Com um conversor USB / serial, tentei conectar a linha TX de / dev / ttyS2 ao meu computador e não tenho caracteres nulos. Suponho que o sinal não seja perturbado. Além disso, se eu parar o comando cat ou minicom em / dev / ttyUSB0 (200 hz), o problema desaparecerá.
fonte
When neither IGNBRK nor BRKINT are set, a BREAK reads as a null byte ('\0')
. Eu tentei desativar essas opções, mas eu tenho o mesmo problema (com o gato no / dev / ttyUSB0)