【发布时间】:2010-09-28 21:54:18
【问题描述】:
我想使用命令行将字节流发送到串行端口。这可能吗?我的串行端口位于我的 Mac 上的 /dev/cu.usbserial-A700dYoR。例如,如果我想将整数 50 或字符串“数据”发送到该串口,我该怎么做?
我对 UNIX 的了解非常有限。
【问题讨论】:
标签: unix shell serial-port communication byte
我想使用命令行将字节流发送到串行端口。这可能吗?我的串行端口位于我的 Mac 上的 /dev/cu.usbserial-A700dYoR。例如,如果我想将整数 50 或字符串“数据”发送到该串口,我该怎么做?
我对 UNIX 的了解非常有限。
【问题讨论】:
标签: unix shell serial-port communication byte
#!/bin/bash
# Port setting
stty -F /dev/cu.usbserial-A700dYoR raw speed 9600
echo 'Hello' > /dev/cu.usbserial-A700dYoR
或者类似的东西,如果我没记错的话……已经有几年了。您可能必须是 sudo 才能使用它...
这是发送文本......不是二进制......将数字 50 作为文本发送
echo '50' > /dev/cu.usbserial-A700dYoR
将其作为二进制整数发送会更困难。
【讨论】:
echo '2' > /dev/cu.usbserial-A700dYoR 将发送 50 作为单个字节。如果你真的需要发送一个“整数”,你必须发现接收者的“整数”是什么(例如,大端或小端、7 或 8 字节流、编码)。
printf '%c' $'\x32' > /dev/cu.usbserial-A700dYoR
printf '%b' '\x32' > /dev/cu.usbserial-A700dYoR