【问题标题】:How to send a single digit number to a COM port from a batch file?如何从批处理文件向 COM 端口发送单个数字?
【发布时间】:2023-04-10 02:26:01
【问题描述】:

我需要将一些单字符命令从批处理文件发送到挂在 COM 端口上的 Bus Pirate,但我无法发送单个数字。
如果我发送一个两位数的数字,它会很好地发送,似乎只是个位数的数字是个问题。

在下面的代码中,字母发送正常,但数字似乎根本不发送。

Set "CNum=COM5" 
echo m>\\.\%CNum%
echo 4>\\.\%CNum%
echo 4>\\.\%CNum%
echo W>\\.\%CNum%
echo P>\\.\%CNum%

有什么诀窍可以让它工作吗?

【问题讨论】:

  • for %%i in (m 4 4 W P) do (echo %%i)>\\.\%cnum%
  • echo 还附加了一个换行符——这是你想要的吗?
  • 或者set /p str="4" <nul >\\.\COM5如果你不想换行

标签: batch-file serial-port port send


【解决方案1】:

出现问题是因为您没有使用完整的重定向句柄,因此您发送到 COM 端口的数字字符串被误认为是 1。即1>\\.\COM5

你可以使用:

Set "CNum=COM5" 
>\\.\%CNum% echo m
>\\.\%CNum% echo 4
>\\.\%CNum% echo 4
>\\.\%CNum% echo W
>\\.\%CNum% echo P

或:

Set "CNum=COM5" 
(echo m) >\\.\%CNum%
(echo 4) >\\.\%CNum%
(echo 4) >\\.\%CNum%
(echo W) >\\.\%CNum%
(echo P) >\\.\%CNum%

您甚至可能想尝试一下:

Set "CNum=COM5" 
(   echo m
    echo 4
    echo 4
    echo W
    echo P
) >\\.\%CNum%

或:

Set "CNum=COM5" 
>\\.\%CNum% (
    echo m
    echo 4
    echo 4
    echo W
    echo P
)

【讨论】:

  • 完美,谢谢!第一个选项效果很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-22
  • 2012-02-20
  • 2010-09-21
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 2010-10-17
相关资源
最近更新 更多