Estou trabalhando no Linux (TinyCore). Como parte do processo de trabalho, preciso usar um dispositivo serial para transmitir dados. No entanto, estou tendo sérios problemas com isso.
O cerne da questão é que nenhum dado parece ser transmitido. No uso do comando:
echo 'hello' > /dev/ttyS0
terminal parece travar um pouco, então o programa termina sem que nenhum dado seja aparentemente transmitido (nada no lado recebido). Quando tento receber com:
cat < /dev/ttyS0
e tentar enviar algo do dispositivo conectado, nada parece ser recebido.
Sobre as configurações do dispositivo. Aqui estão as saídas dos comandos correspondentes que executei:
dmesg | grep tty
00:05: ttyS0 at I/0 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
números de acordo com o que posso ver no BIOS
stty -F /dev/ttyS0
speed 9600 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^0;
min = 1; time = 0;
-brkint -imaxbel
Ao testar com setserial, recebo:
setserial -g /dev/ttyS0
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
O que posso fazer para determinar as causas de por que nada é transmitido e corrigi-lo?
setserial
Resultados de chamadas adicionados ; Tirando pinos de curto-circuito agora
/sbin/setserial -v -g /dev/ttyS0
, teria sido melhor. Eu esqueci a bandeira detalhada.
stty
tinha as opções clocal
-ixon
, -ixoff
, -crtscts
e -crtsxoff
, o que esperamos que iria desativar as linhas de controle de modem e o controle de fluxo como uma necessidade, muitas vezes para uma conexão serial 3 tipo de fio. Essas são coisas que podem estar bloqueando você. Eles também são coisas que você pode controlar por dentro minicom
para ajudar a descobrir quais configurações você precisa.
/sbin/setserial -g /dev/ttyS0
diz? Além disso, você pode tentar usarminicom
e curto-circuito nos pinos TX e RX juntos em seu cabo serial e veja se você pode ver o que você digita