使用 Bash 将单个字节写入串行端口

发布于 2024-12-17 07:58:32 字数 226 浏览 0 评论 0原文

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

命令如下:

 echo 121 > /dev/cu.usbmodem411

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

I have an Arduino which I have coded to read from a USB serial port and power an LED.
I know it is working because it works on the built serial monitor. Now I want to write a Bash script which writes to the serial port.

Here is the command:

 echo 121 > /dev/cu.usbmodem411

It outputs the string "123". How can I instead write a single byte with a value of 121?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妖妓 2024-12-24 07:58:32
echo 121 > /dev/cu.usbmodem411

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

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

echo -n 

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

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

\171' > /dev/cu.usbmodem411

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

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

echo 121 > /dev/cu.usbmodem411

will write four bytes: 0x31 (meaning '1'), 0x32 (meaning '2'), 0x31 again, 0x0A (meaning a newline).

If your goal is to write a single byte, with value 121, you would write this:

echo -n 

where 171 is 121 expressed in base-8, and -n tells echo not to print a newline character.

If that's not your goal, then please clarify.

\171' > /dev/cu.usbmodem411

where 171 is 121 expressed in base-8, and -n tells echo not to print a newline character.

If that's not your goal, then please clarify.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文