2011-11-19 70 views
1

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

这里是命令:

echo 121 > /dev/cu.usbmodem411 

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

+1

你的问题是什么? –

+0

谢谢你是对的,我发现我的问题。如果我传121,它会写一个整数。如果我输入“y”,它会将121写成我想要的字节。 – DJRyan

回答

10
echo 121 > /dev/cu.usbmodem411 

将写四个字节:0X31(意为 '1'),0x32(意为 '2'),0X31再次的0x0A(意味着换行)。

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

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

,其中171 121基地-8表达,-n告诉echo不打印换行符。

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

+1

,或者在发送值:'echo -en'\ x79'>/dev/cu.usbmodem411'时也可以使用** hex * – fduff