나는 종종 cat
직렬 연결을 통해 FPGA 보드의 콘솔에서 디버그 정보를 보지만, 전송 속도가 무엇인지 Linux에 알릴 필요는 없습니다. 고양이는 직렬 연결의 전송 속도가 무엇인지 어떻게 알 수 있나요?
답변1
이것stty
유틸리티는 장치의 터미널 I/O 특성을 표준 입력으로 설정하거나 보고합니다. 이러한 특성은 특정 매체를 통해 연결을 설정할 때 사용됩니다. cat
Baud Rate 자체는 모르지만, 특정 연결로부터 받은 정보를 화면에 출력합니다.
예를 들어, stty -F /dev/ttyACM0
ttyACM0 장치의 현재 전송 속도가 제공됩니다.
답변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진수입니다.#define
B9600
get-baud-rate
어쩌면 당신은 그것을 시험해보고 새 부츠의 숫자가 어떻게 보이는지 그리고 미래에 변화가 있는지 확인할 수 있습니다.
답변3
직렬 포트는 cat
이전에 사용된 전송 속도 또는 기본 전송 속도를 가정합니다. 전송 속도를 변경해야 하는 경우 stty
다음과 같이 사용할 수 있습니다.
stty -F /dev/ttyS1 115200
cat /dev/ttyS1
위 명령은 전송 속도를 /dev/ttyS1
115200으로 설정합니다. 그런 다음 cat을 사용하면 115200 전송 속도로 작동합니다.