【问题标题】:Serial Port Baudrate over 230400 on OS XOS X 上的串行端口波特率超过 230400
【发布时间】:2016-01-11 09:27:47
【问题描述】:

我正在尝试编写一个小型可移植脚本,该脚本允许仅使用一些标准命令行实用程序就可以在没有任何进一步的嗅探器软件要求的情况下进行串行端口嗅探。

我可以致电./serialSniffer.sh /dev/cu.usbserial-xyz,然后使用我想嗅探的软件连接到显示的设备。

serialSniffer.sh:

#! /usr/bin/env zsh

TEMPORARYDIR="$(mktemp -d 2>/dev/null || mktemp -d -t 'serialSniffer')"

cleanup ()
{
    kill $(cat $TEMPORARYDIR/rx_tee.pid) 2> /dev/null
    kill $(cat $TEMPORARYDIR/rx_cat.pid) 2> /dev/null
    kill $(cat $TEMPORARYDIR/tx_tee.pid) 2> /dev/null
    kill $(cat $TEMPORARYDIR/tx_cat.pid) 2> /dev/null
    rm $TEMPORARYDIR/rxfifo
    rm $TEMPORARYDIR/txfifo
    kill $(cat $TEMPORARYDIR/socat.pid) 2> /dev/null
    rm $TEMPORARYDIR/rx_tee.pid
    rm $TEMPORARYDIR/rx_cat.pid
    rm $TEMPORARYDIR/tx_tee.pid
    rm $TEMPORARYDIR/tx_cat.pid
    rm $TEMPORARYDIR/socat.pid
    exit 0
}

trap cleanup SIGINT SIGTERM

socat pty,raw,echo=0,link=$TEMPORARYDIR/ttyDevice pty,raw,echo=0,link=$TEMPORARYDIR/ttyHost &
echo $! > $TEMPORARYDIR/socat.pid
sleep 0.01

mkfifo $TEMPORARYDIR/rxfifo
cat $TEMPORARYDIR/ttyDevice > $TEMPORARYDIR/rxfifo &
echo $! > $TEMPORARYDIR/rx_cat.pid
tee $1 $TEMPORARYDIR/rx < $TEMPORARYDIR/rxfifo > /dev/null &
echo $! > $TEMPORARYDIR/rx_tee.pid

mkfifo $TEMPORARYDIR/txfifo
cat $1 > $TEMPORARYDIR/txfifo &
echo $! > $TEMPORARYDIR/tx_cat.pid
tee $TEMPORARYDIR/ttyDevice $TEMPORARYDIR/tx < $TEMPORARYDIR/txfifo > /dev/null &
echo $! > $TEMPORARYDIR/tx_tee.pid

echo "Connect computer side software to '$TEMPORARYDIR/ttyHost'."

tail -f $TEMPORARYDIR/tx $TEMPORARYDIR/rx

它确实适用于高达 230400 的低波特率。但是,例如,在我的 PySerial 软件中选择 460800 时,我得到了“不适合设备的 ioctl”错误。 使用stty 无法设置高波特率。

PySerial 和dev/cu.usbserial-xyz 之间的直接连接有效,因此不是硬件问题。

【问题讨论】:

  • 有同样的问题。你找到解决办法了吗?我已经尝试使用 FTDI 提供的驱动程序,但它也不起作用。该问题仅发生在 OSX 上。 Linux 和 Windows 可以选择波特率>230400,内置驱动程序和 FTDI 驱动程序。
  • @StefanD。不,很遗憾,我还没有解决方案。

标签: macos serial-port stty


【解决方案1】:

这里有一个很好的答案:How to set the baud rate for Macs in a terminal

基本上使用 stty 来设置波特率和后台,这样它就不会退出:

stty -f /dev/cu.usbserial 460800 &

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 2019-06-04
    • 1970-01-01
    相关资源
    最近更新 更多