Cat은 직렬 포트의 전송 속도를 어떻게 알 수 있습니까?


24

cat시리얼 연결을 통해 FPGA 개발 보드에서 콘솔의 디버깅 정보를 보는 데 정기적으로 사용 하지만 전송 속도가 무엇인지 Linux에 알려주지 않아도됩니다. 직렬 연결의 전송 속도가 무엇인지 고양이는 어떻게 알 수 있습니까?


예를 들어 minicom이전 과 같이 포트를 설정하지 않았 습니까? 여기서 작동하지 않습니다. 직렬 포트 매개 변수를 설정 한 후에 만 ​​사용할 수 있습니다 cat.
Marco

전송 속도를 설정하거나 알지 못하며 장치에서 읽습니다.
Ulrich Dangel

@Marco, 데비안이 기본 전송 속도 설정을 가지고 있는지는 모르겠지만 어느 곳에서도 설정하지 않았습니다.
stanri

답변:


34

stty유틸리티는 표준 입력 인 장치의 터미널 I / O 특성을 설정하거나보고합니다. 이러한 특성은 특정 매체를 통한 연결을 설정할 때 사용됩니다. cat전송 속도를 모르는 경우 특정 연결에서 수신 한 화면 정보를 인쇄합니다.

예를 들어 stty -F /dev/ttyACM0ttyACM0 장치의 현재 전송 속도를 제공합니다.


1
그러나 stty는 전송 속도에 대해 어떻게 알았습니까? 전송 속도가 자동으로 감지하거나 (예를 통해 어떤 점에서 설정된 경우이 답변은, 어떻게 든 질문을 연기 stty)
humanityANDpeace

@humanityANDpeace 나는 기본 전송 속도가 내가 사용했던 것으로 가정합니다. 나중에 장치의 보드 속도를 변경했을 때 stty를 통해 변경해야했습니다.
stanri

9

cat포트가 이미 구성된 모든 설정을 사용합니다. 이 작은 C 스 니펫을 사용하면 특정 직렬 포트에 대해 현재 설정된 전송 속도를 볼 수 있습니다.

get-baud-rate.c

#include <termios.h>
#include <unistd.h>
#include <stdio.h>

int main() {
  struct termios tios;
  tcgetattr(0, &tios);
  speed_t ispeed = cfgetispeed(&tios);
  speed_t ospeed = cfgetospeed(&tios);
  printf("baud rate in: 0%o\n", ispeed);
  printf("baud rate out: 0%o\n", ospeed);
  return 0;
}

그것을 실행 :

./get-baud-rate < /dev/ttyS0 # or whatever your serial port is

당신이 얻는 숫자는에서 조회 할 수있는 /usr/include/asm-generic/termios.h이 곳, #define들과 같은 B9600헤더 파일과의 수 있다는 등의 주 get-baud-rate출력은 8 진수입니다.

새로 부팅 할 때이 숫자가 어떤지, 나중에 변경되는지 여부를 실험하고 확인할 수 있습니다.


2
stty방금이 작업을 수행 하는 명령을 찾았습니다 . 예를 들어, stty -F /dev/ttyACM0현재 보드 속도가 현재 장치에 맞는지 알려줍니다.
stanri

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