고양이는 직렬 포트의 전송 속도를 어떻게 알 수 있나요?

고양이는 직렬 포트의 전송 속도를 어떻게 알 수 있나요?

나는 종종 cat직렬 연결을 통해 FPGA 보드의 콘솔에서 디버그 정보를 보지만, 전송 속도가 무엇인지 Linux에 알릴 필요는 없습니다. 고양이는 직렬 연결의 전송 속도가 무엇인지 어떻게 알 수 있나요?

답변1

이것stty유틸리티는 장치의 터미널 I/O 특성을 표준 입력으로 설정하거나 보고합니다. 이러한 특성은 특정 매체를 통해 연결을 설정할 때 사용됩니다. catBaud Rate 자체는 모르지만, 특정 연결로부터 받은 정보를 화면에 출력합니다.

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

답변2

cat포트가 구성한 설정을 사용하면 됩니다. 이 작은 C 코드 조각을 사용하면 특정 직렬 포트에 대해 현재 설정된 전송 속도를 확인할 수 있습니다.

전송 속도를 가져옵니다.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

당신이 얻는 번호는 , s 등 /usr/include/asm-generic/termios.h이 있는 곳 에서 찾을 수 있습니다. 헤더 파일과 출력의 숫자는 8진수입니다.#defineB9600get-baud-rate

어쩌면 당신은 그것을 시험해보고 새 부츠의 숫자가 어떻게 보이는지 그리고 미래에 변화가 있는지 확인할 수 있습니다.

답변3

직렬 포트는 cat이전에 사용된 전송 속도 또는 기본 전송 속도를 가정합니다. 전송 속도를 변경해야 하는 경우 stty다음과 같이 사용할 수 있습니다.

stty -F /dev/ttyS1 115200
cat /dev/ttyS1

위 명령은 전송 속도를 /dev/ttyS1115200으로 설정합니다. 그런 다음 cat을 사용하면 115200 전송 속도로 작동합니다.

관련 정보