使用 Bash 将单个字节写入串行端口
我有一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将写入四个字节:0x31(表示“1”),0x32(表示“2”),再次0x31,0x0A(表示换行符)。
如果您的目标是写入值为 121 的单个字节,您可以这样写:
其中 171 是以 8 进制表示的 121,并且
-n
告诉echo
不要这样做打印换行符。如果这不是您的目标,请澄清。
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:
where 171 is 121 expressed in base-8, and
-n
tellsecho
not to print a newline character.If that's not your goal, then please clarify.