在运行Busybox的嵌入式Linux系统上,我试图通过串口接收字节,并回显接收到的所有信息。
系统设置如下: Linux <-USB-> FTDI芯片<- UART ->单片机在UART线上,我有一个逻辑分析器监控FTCI芯片和单片机之间的数据。MCU和Linux都有相同的UART配置。
我编写的脚本运行在Linux系统上,应该将从MCU接收到的所有数据发回。
到目前为止,我有一个简单的Bash脚本,它将接收62字节长的数据突发。超时设置为5秒,作为一种活动信号。
#!/bin/bash
# Enable debugging
set -x
# Set the baudrate of the port
stty -F /dev/ttyUSB0 1500000
while true
do
# Read 62 bytes with a timout of 5 seconds to variable RESP.
read -N62 -t5 RESP < /dev/ttyUSB0
# Print out how many bytes we received
echo ${#RESP}
# Send back the data, -n for no trailing new line
echo -n $RESP > /dev/ttyUSB0
done我在这个脚本中有几个问题:
观察到的。
为了接收正确的数据并正确地将其发回,我在这里遗漏了什么?
发布于 2022-05-30 08:52:20
通过@锯末提出的建议,我得到了一个工作脚本。最后,我停止使用read命令。我无法让它在原始模式下工作。我无法在我的Busybox系统中使用termios。我用dd设置了一个工作装置
#!/bin/bash
stty -F /dev/ttyUSB0 raw
stty -F /dev/ttyUSB0 1500000
dd if=/dev/ttyUSB0 count=62 of=/dev/ttyUSB0https://stackoverflow.com/questions/72379500
复制相似问题