【发布时间】:2020-08-24 14:30:20
【问题描述】:
我对如何实现这一点非常迷茫..理论上看起来很简单,但我已经尝试了我能想到的所有东西以及我理解的所有相关示例..
所以,我正在尝试自动化刷新微控制器的过程,发现我可以在命令提示符下使用 STM32 Link CLI 而不是实用程序应用程序(您必须单独单击每个按钮)。我希望将其合并到我的 Python 代码中,在其中测试我正在闪烁的板,以完全自动化整个过程。
我今年才开始编码,所以我对此有点陌生...我可以在命令终端中输入:
"C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe" -c -p "C:\Users\Desktop\TempCtrl.bin" -Rst -Run
哪个闪烁它正确,但我似乎无法在 Python 中复制这一行:
os.system('"C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe" -c -p "C:\Users\Desktop\TempCtrl.bin" -Rst -Run')
好像什么都没做……
我已经尝试过使用 subprocess,因为我已经看到它是一个强大的工具,但似乎无法找到在这种情况下如何使用它.. 到目前为止的进展:
p = Popen(['ST-LINK_CLI.exe'], stdout=PIPE, stdin=PIPE, stderr=PIPE, shell=True)
stdout_data = p.communicate(input='enter')[0]
如果我尝试其他任何操作,它会读出“ValueError: I/O operation on closed file”。 感谢您的任何帮助!
【问题讨论】:
标签: python-2.7 subprocess microcontroller stm32 os.system