启动时串行 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

看起来 crontab 已经在 mx-uart-ctl 依赖的一些初始服务之前运行了。我决定将 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/

相关内容