linux下用命令行给串口写数据和读数据
在 Linux 系统中,串口设备(如 /dev/ttyS3)可以通过命令行进行读写操作。您遇到的问题是因为 Bash 解释了命令行中的字符串 “dis vlan ”,但并没有按预期向串口设备发送数据。你应该将数据通过重定向发送到串口设备。
下面是如何正确地向串口设备写数据和读取数据:
- 向串口设备写数据:
使用 echo 或 printf 命令来向串口设备发送数据。不要用引号把数据包围起来,直接发送字符。
例如,要发送 “dis vlan ”:
echo -e “dis vlan
” > /dev/ttyS3
解释:
echo -e:-e 选项允许解释反斜杠转义字符,如 (换行符)。
/dev/ttyS3:将输出重定向到串口设备 /dev/ttyS3。
如果使用 printf:
printf “dis vlan
” > /dev/ttyS3
2. 从串口设备读取数据:
要从串口设备读取数据,可以使用 cat 或 screen 等命令。
例如,使用 cat 从串口读取数据:
cat < /dev/ttyS3
这将显示串口设备 /dev/ttyS3 上接收到的数据。如果你希望持续读取,直到按 Ctrl+C 停止:
cat /dev/ttyS3
3. 更复杂的串口操作:
对于更复杂的串口通信(例如设置波特率、数据位、校验等),可以使用 stty 命令配置串口参数。以下是一个例子:
# 设置串口设备的波特率为 9600,8 个数据位,无校验位,1 个停止位
stty -F /dev/ttyS3 9600 cs8 -cstopb -parenb
然后可以通过 echo 或 cat 进行串口读写操作。
总结:
写数据到串口:使用 echo -e “dis vlan
” > /dev/ttyS3 或 printf “dis vlan
” > /dev/ttyS3。
读取数据:使用 cat < /dev/ttyS3 或 cat /dev/ttyS3。
配置串口参数:使用 stty 命令