我使用PC (Windows10)通过USB (串口)将数据发送给Arduino,并正确运行。所以我写了一个powershell脚本,如下所示:
$serial = new-Object System.IO.Ports.SerialPort COM8,9600,None,8,one
$serial.open()
$serial.WriteLine("1")
$serial.close()
问题是当我重新启动我的PC时,因为在重新启动几次之后,Arduino获得了一个新的串口,并且我的脚本被设置为COM8,那么它就不能工作了!
因此,使用powershell,我如何知道在重新启动PC后,Arduino连接的是哪个串口?
如何更改此powershell脚本以自动识别Arduino连接的串口?谢谢
发布于 2022-06-22 14:58:30
尝尝这个。注意,我实际上没有连接到串行端口的东西来进行测试。
您需要通过$SerialPorts
查看是否有什么东西可以标识正确的端口,然后对Where-Object -Property Description -eq 'Arduino stuff'
进行调整,使其与您所识别的匹配。
$SerialPorts = Get-CimInstance -Class Win32_SerialPort | Select-Object Name, Description, DeviceID
# This is the part where you need to tweak the Where-Object statement to match what you are looking for
$ArduinoPort = $SerialPorts | Where-Object -Property Description -eq 'Arduino stuff' | Select -ExpandProperty DeviceID
$serial = new-Object System.IO.Ports.SerialPort $ArduinoPort, 9600, None, 8, one
$serial.open()
附加注
如果找不到任何可以帮助您识别哪个是arduino端口的信息,则可以删除| Select-Object Name, Description, DeviceID
,这样您就可以得到所有属性(如果可以从那里检查是否可以用于确定要使用的串行端口)
https://stackoverflow.com/questions/72717720
复制相似问题