USB 포트를 통해 SBC에 연결된 Betaflight Nero F7 IMU 센서 보드와 통신하기 위해 Java 비행 데이터 수집 프로그램(Lubuntu 16.04를 실행하는 단일 보드 컴퓨터에서 실행)을 얻으려고 합니다. 개발에 사용하는 노트북(Ubuntu 16.04 실행)에서는 제대로 실행되지만 SBC에서 재부팅한 후에는 응답하지 않습니다.
제 생각에는 기본 전송 속도(노트북에서는 115200, SBC에서는 9600)와 관련이 있는 것 같습니다. 다음 명령을 사용하여 SBC에서 이를 변경하면 screen
내 코드가 센서와 통신할 수 있습니다.
screen /dev/ttyACM0 115200
(다시 시작한 후) 명령을 사용하여 변경해도 stty
여전히 대화할 수 없습니다.
stty -F /dev/ttyACM0 115200
두 경우 모두 전송 속도가 올바르게 설정된 것으로 보입니다.
setserial /dev/ttyACM0 -av
/dev/ttyACM0, Line 0, UART: unknown, Port: 0x0000, IRQ: 0
Baud_base: 115200, close_delay: 12, divisor: 0
closing_wait: none
Flags: spd_normal low_latency
Betaflight 구성 유틸리티(Chrome 앱)를 사용하면 장치를 켜고 통신할 수 있습니다. 그 후에는 내 코드도 작동합니다. 기본 전송 속도는 115200이지만 예를 들어 9600으로 변경하면 여전히 작동합니다.
stty
또한 다른 포트 설정을 가져오는 명령을 실행 하고 구성 유틸리티로 센서를 연 후와 정확히 동일하게 만들려고 했습니다.
stty -F /dev/ttyACM0 -a
speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S;
susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint ignpar parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon iexten -echo -echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
screen
그러나 설정이 정확히 일치하더라도 구성 프로그램을 실행할 때까지 내 코드는 SBC에서 계속 실행되지 않습니다 . 센서는 노트북에서 즉시 작동하므로 센서의 다양한 상태를 배제할 수 있습니다. screen
및 구성 유틸리티를 사용하여 변경할 수 있지만 및 를 사용하여 setserial
변경할 수 없는 다른 마법의 설정이 있습니까 stty
?