Estou tentando me comunicar entre um dispositivo embutido que executa o linux e um PC que executa o windows xp em uma conexão RS232. No windows eu uso o Hyperterminal, mas não sei quais configurações devo usar.
Eu tenho que definir
- Bits por segundo
- Bits de dados
- Paridade
- Parar bits
- Controle de fluxo
No dispositivo linux eu corri stty
para descobrir as configurações daquele lado. Eu não quero alterar essas configurações do dispositivo linux, mas apenas lê-los. Mas eu tenho dificuldade em interpretar a saída.
~ $ stty -F / dev / ttyS0 -a
velocidade 9600 baud; linhas 24; colunas 80;
intr = ^ C; quit = ^ \; apagar = ^; kill = ^ U; eof = ^ D; eol =;
eol2 =; start = ^ Q; stop = ^ S; susp = ^ Z; rprnt = ^ R; werase = ^ W;
lnext = ^ V; flush = ^ O; min = 1; tempo = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -incrito -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -dois nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iext
Bits per second
provavelmente terá que ser ajustado para 9600, mas como eu tenho que interpretar a saída restante da stty?
Editar:
Ok, eu fiz um pouco mais. Procurando se getty
está em execução:
~# ps | grep getty
1557 root 1884 S /sbin/getty 115200 ttyS2
1558 root 1884 S /sbin/getty 38400 tty1
1600 root 2636 S grep getty
Suponho que isso significa que estou ouvindo no dispositivo ttyS2
e também parece indicar a taxa de transmissão como 115200
. Agora eu corri stty
para ver as configurações:
~# stty -F /dev/ttyS2 -a
speed 115200 baud; rows 24; columns 80;
intr = ^C; quit = ^\; erase = ^?; kill = ^X; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon
-ixoff -iuclc -ixany -imaxbel
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop
-echoprt -echoctl -echoke
Agora, tentando usar isso no Hyperterminal, presumo as seguintes configurações:
- Bits por segundo: 115200
- Bits de dados: 8 (por causa do cs8)
- Paridade: nenhuma (por causa de -parenb)
- Parar bits: 1 (por causa de -cstopb)
- Controle de fluxo: nenhum (por causa de -crtscts e -ixon)
Mas ainda não está funcionando.