我使用的是 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/