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

DJR*_*yan 2 bash shell electronics arduino

我有一个Arduino,我编码从USB串口读取并为LED供电.我知道它正在工作,因为它适用于内置的串行监视器.现在我想编写一个写入串口的Bash脚本.

这是命令:

 echo 121 > /dev/cu.usbmodem411
Run Code Online (Sandbox Code Playgroud)

它输出字符串"123".我怎么能写一个值为121的单字节?

rua*_*akh 11

echo 121 > /dev/cu.usbmodem411
Run Code Online (Sandbox Code Playgroud)

将写入四个字节:0x31(表示'1'),0x32(表示'2'),0x31再次,0x0A(表示换行).

如果你的目标是写一个字节,值为121,你会写这个:

echo -n $'\171' > /dev/cu.usbmodem411
Run Code Online (Sandbox Code Playgroud)

其中171是以base-8表示的121,并且-n告诉echo不要打印换行符.

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