Tengo un dispositivo microcontrolador que envía cadenas terminadas en nueva línea a través del puerto serie conectado por USB y (hasta ahora) estoy usando minicom
la versión 2.6 para leer /dev/ttyACM0
. He configurado la aplicación de terminal para ajustar líneas, pero me gustaría que vaya al principio de la siguiente línea cuando recibo un carácter de avance de línea desde mi dispositivo serie. ¿Puede [y cómo] minicom
hacer eso?
EDITAR: También probé formas que conozco, como stty /dev/ttyACM0 ...,inlcr
y screen /dev/ttyACM0 ...,inlcr
, que sé que tienen opciones para traducir una nueva línea entrante en retorno de carro+avance de línea (CR+LF) y ninguna de ellas funciona tampoco. También probé otras opciones (como ocrnl
, en caso de que mi lógica fuera incorrecta nl
y -nl
), ninguna funciona y no sé por qué.
Ah, y estoy ejecutando Manjaro 16.06-rc1.
Respuesta1
¡Me tomó bastante tiempo pero aquí estoy por fin! Tuve que descargar el código fuente de Minicom para tener una idea de qué hacer para evitar la molestia de presionar constantemente Ctrl+ Z, U... Aquí está.
minicom
almacena sus parámetros en un archivo de configuración, cuyo valor predeterminado es $HOME/.minirc.dfl
. Pon la siguiente línea,a la carta:
pu addcarreturn Yes
y ahora minicom
agrega un retorno de carro a todas las líneas entrantes. No tengo idea de por qué no guardó esa opción junto con su archivo de configuración en primer lugar, pero, ¡diablos, ahora no me importa!
Tenga en cuenta que cada opción posterior pu
debe tomarseexactamente 16caracteres, rellenados con espacios a la derecha.
Respuesta2
RESPUESTA:
Enminicomprensa Ctrl+A Z
. Esto mostrará el menú. Luego presione U
("Agregar retirada de carro") yminicomagregará el CR
símbolo a cada LF
símbolo automáticamente.
Es posible que desee volver a hacerlo para desactivar esta función.
SOLUCIÓN ALTERNA:
Intente enviar las líneas que terminan en "\r\n"
desde el microcontrolador.
\r
significa elRetorno de carro(código ASCII 13 o 0xd)
\n
significa elLinea de alimentaciónoNueva línea(código ASCII 10 o 0xa)