【问题标题】:Write a single byte to the serial port with Bash使用 Bash 将单个字节写入串行端口
【发布时间】:2021-02-06 01:50:13
【问题描述】:

我有一个 Arduino,我已经对其进行了编码,可以从 USB 串行端口读取数据并为 LED 供电。 我知道它正在工作,因为它适用于内置的串行监视器。现在我想编写一个写入串行端口的 Bash 脚本。

命令如下:

 echo 121 > /dev/cu.usbmodem411

它输出字符串“123”。如何改为写入值为 121 的单个字节?

【问题讨论】:

  • 谢谢你是对的,我发现了我的问题。如果我通过 121 它会写入一个整数。如果我输入“y”,它将写入 121 作为我想要的字节。

标签: bash shell arduino


【解决方案1】:
echo 121 > /dev/cu.usbmodem411

将写入四个字节:0x31(表示“1”)、0x32(表示“2”)、再次为 0x31、0x0A(表示换行符)。

如果您的目标是写入一个值为 121 的单个字节,您可以这样写:

echo -n $'\171' > /dev/cu.usbmodem411

其中 171 是用 base-8 表示的 121,-n 告诉 echo 不要打印换行符。

如果那不是你的目标,那么请澄清一下。

【讨论】:

  • 或者您也可以在发送值时使用 hex 表示法:echo -en '\x79' > /dev/cu.usbmodem411
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-15
  • 2021-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多