직렬 UART 모드는 시작 시 RS232로 되돌아갑니다.

직렬 UART 모드는 시작 시 RS232로 되돌아갑니다.

저는 Moxa Linux 장치인 Debian 9를 사용하고 있으며 port0 모드를 모드 1, 2선 RS485로 설정해야 합니다. 관련 애플리케이션이 다시 시작될 때 작동하는 crontab을 통해 시작된 시작 스크립트를 사용하지만 모드는 매번 모드 0, RS 232로 재설정됩니다. 이게 대본인데 아이디어가 있나요?

포트 모드를 수동으로 설정하면 제대로 작동하지만 항상 모드 0으로 돌아갑니다!

다음은 작동해야 하는 특정 라인입니다.

mx-uart-ctl -p 0 -m 1

답변1

나는 crontab을 시도하고 로그 파일을 생성해 보았는데 이것이 내가 얻은 것입니다:

Set uart mode failed

mx-uart-ctl이 의존하는 일부 초기 서비스 이전에 crontab이 이미 실행 중인 것 같습니다. mx-uart-ctl 명령을 시스템 서비스로 실행하기로 결정했습니다. 이것은 내 구성 파일입니다.

[Unit]
Description=Enable RS485 2-W Mode
After=uc2100-base-system.service

[Service]
Type=oneshot
ExecStart=/home/moxa/rs485.sh

[Install]
WantedBy=multi-user.target

시스템에 따라 After 매개변수를 변경해야 할 수도 있습니다(networking.service도 작동할 수 있음).

이건 내 스크립트야

#!/bin/sh
mx-uart-ctl -p 0 -m 1

참고: 스크립트가 작동하지 않으면 경로에 /sbin(또는 mx-uart-ctl이 포함된 디렉터리)을 추가해 보십시오. 경로에 /sbin을 추가하면 보안이나 기타 문제에 영향을 미칠 수 있다는 우려가 있는 경우 다음과 같이 경로에 디렉터리에 대한 심볼릭 링크를 만들 수 있습니다.sudo ln -s /sbin/mx-uart-ctl /usr/local/bin/

관련 정보