我有一个Arduino,我已经编码从USB串口读取数据并为LED供电。 我知道它正在工作,因为它在内置的串行监视器上工作。现在我想编写一个写入串口的Bash脚本。用Bash写一个字节到串口
这里是命令:
echo 121 > /dev/cu.usbmodem411
它输出字符串 “123”。我怎么能写一个值为121的单个字节?
我有一个Arduino,我已经编码从USB串口读取数据并为LED供电。 我知道它正在工作,因为它在内置的串行监视器上工作。现在我想编写一个写入串口的Bash脚本。用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 121基地-8表达,-n
告诉echo
不打印换行符。
如果这是而不是您的目标,那么请澄清。
,或者在发送值:'echo -en'\ x79'>/dev/cu.usbmodem411'时也可以使用** hex * – fduff
你的问题是什么? –
谢谢你是对的,我发现我的问题。如果我传121,它会写一个整数。如果我输入“y”,它会将121写成我想要的字节。 – DJRyan