bash - 使用 Bash 将单个字节写入串口

标签 bash shell arduino

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

命令如下:

 echo 121 > /dev/cu.usbmodem411

它输出字符串“123”。我怎样才能改为写入值为 121 的单个字节?

最佳答案

echo 121 > /dev/cu.usbmodem411

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

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

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

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

如果那不是您的目标,那么请澄清。

关于bash - 使用 Bash 将单个字节写入串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8191888/

相关文章:

bash - 将带有空格的命令字符串传递给 docker-compose exec

c - Fork() 工作不正确,返回 3 次

linux - 在linux中找到第一行中以特定单词开头的第二个单词并替换下一行的第一个单词

azure - IoT DevKit 设置问题 : What Should I Select for Board Type?

c - WriteFile 在没有调试的情况下无法工作

c++ - 如何在 Atmel Studio 7 中为 Arduino 使用 Eigen 库?

linux - 在 Linux 上的 ghci 中读取标准输入被破坏

python - 如何构建 oauth api 调用?

linux - shell 脚本中的命令 'find with -exec'

linux - 如何在我的 shell 脚本中包含 html?执行 shell 脚本时可以得到 html 格式的输出吗?