如何在Unix中写入串口?我有一个通过USB连接的gps冰球,显示在/dev/ttyUSB0
下的linux mint目录树中。我已经尝试了很多东西来写它没有太多运气。
我的最终目标是给它写一个gps句子并打开gps的GLL语句。 website(对于我的bu-353)说明了这一点:Enable GLL Output 1sec - $PSRF103,1,0,1,1*24
,所以我可以做echo -e "$PSRF103,1,0,1,1*24\r" > /dev/ttyUSB0
而这会打开它,但这不起作用。
有没有人知道怎么写gps冰球的串口并且如果你“传递”正确的字符串(如上面那个),它会打开一个特定的句子?这将非常有帮助。
例如,当我stty -F /dev/ttyUSB0 4800; echo -e "$PSRF103,1,0,1,1*24\r" > /dev/ttyUSB0; cat /dev/ttyUSB0 | grep -E "GLL|RMC";
时,我只获得$ GPRMC。如何启用$ GPGLL或其他句子?
答案 0 :(得分:2)
echo -e "$PSRF103,1,0,1,1*24\r"
上面的问题是shell会认为$ PSRF103是一个shell变量,并尝试扩展它,导致“,1,0,1,1 * 24 \ r \ n”被发送到序列港口。使用单引号而不是双引号来保留字符串中每个字符的文字值,例如echo -e'$ PSRF103,1,0,1,1 * 24 \ r'