Linux에서 직렬 포트를 구성하는 가장 쉬운 방법은 무엇입니까?


13

직렬 포트를 구성하는 Windows 명령 프롬프트에서 간단하게 사용할 수 있습니다.

mode com1: 9600,n,8,1

또는 구성을 읽으려면 :

mode com1:

리눅스에서도 비슷한 명령이 있습니까? Linux에서 직렬 포트를 찾고 구성하는 가장 쉬운 방법은 무엇입니까?


일반적으로 직렬에 액세스하는 데 사용하는 응용 프로그램에서 바로 편집 할 수 있습니다. 예 : screen /dev/ttyS0 <baud-rate>(시스템 전체 설정에 상관없이 기본값은 9600입니다.)
phk

POS 프린터를 사용하도록 구성해야합니다.
Hrvoje T

OK,이 경우에 시도 stty:에 언급 명령 wiki.openwrt.org/doc/recipes/serialbaudratespeed
phk

답변:


27

stty명령을 사용하여 이러한 매개 변수를 설정할 수 있습니다 .

이 첫 번째 시리얼 포트에 대한 모든 설정을 표시합니다 (대체 ttyS0ttyUSB0USB 직렬 포트를 사용하는 경우) :

stty -F /dev/ttyS0 -a

전송 속도는 9600, 8 비트, 1 정지 비트, 패리티 없음으로 설정됩니다.

stty -F /dev/ttyS0 9600 cs8 -cstopb -parenb

일반적으로 사람들을 혼란스럽게하는 한 가지 이유는 대부분의 직렬 드라이버는 장치가 닫히면 설정을 기본값으로 재설정한다는 것입니다 (즉, 프로세스가 더 이상 장치를 열지 않음). 따라서 위의 stty명령은 설정을 설정 한 후 드라이버가 다시 설정을 재설정합니다. POS 소프트웨어가 먼저 장치를 연 다음 stty설정 을 수행하는 경우 POS 소프트웨어가 장치를 다시 닫을 때까지 (예 : 종료시) 계속 튀어 나와야합니다.

POS 소프트웨어에는 이러한 설정을 자체적으로 구성하는 방법이 있어야한다고 생각했습니다. 프린터를 구동하기 위해 자체 소프트웨어를 작성하는 경우 먼저 장치를 연 다음 stty명령 을 수행하십시오 .

다른 설정으로 재생해야 할 수도 있습니다 (예 : opost출력 후 처리 수행). 경우 opostonlcr두 세트는 상기는 onlcr개행 (0xa는) 바이트가 출력 될 때 일반적으로 이러한 인쇄 계단을 방지하기 위해 추가되는 여분 캐리지 리턴 (0xd)를 발생할

This is a line
              This is the next line

이것은 당신이 원하는 것일 수도 아닐 수도 있습니다. 프린터에 원시 일대일 출력을 설정하려면 opost오프 (추가 -opost받는 stty매개 변수).

핸드 셰이 킹 (흐름 제어)도 stty프린터에 대해 더 잘 알지 못하고 아무 것도 설정해야하는지 여부를 알 수 없습니다.

자세한 내용은 stty맨 페이지를 확인하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.