我对如何实现这一目标感到迷茫。理论上似乎很简单,但我已经试过了我能想到的一切,以及我所理解的所有相关的例子。
因此,我试图自动执行闪烁微控制器的过程,发现我可以在命令提示符中使用STM32链接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')似乎什么都没做..。
我尝试使用子进程,因为我已经看到它是一个强大的工具,但似乎找不出如何在这个实例中使用它。迄今取得的进展:
p = Popen(['ST-LINK_CLI.exe'], stdout=PIPE, stdin=PIPE, stderr=PIPE, shell=True)
stdout_data = p.communicate(input='enter')[0]如果我尝试其他操作,它会读出"ValueError:关闭文件上的I/O操作“。谢谢你的帮助!
发布于 2020-05-08 22:43:21
我想出来了!
import subprocess
subprocess.check_output(['C:\Program Files (x86)\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe', '-c', '-p', 'C:\Users\Desktop\TempCtrl.bin', '0x08000000', '-V', '-Rst', 'Run'])这似乎起作用了。CLI软件手册在某些方面没有很好的描述性,但是必须添加十六进制地址,因为没有十六进制地址就无法工作。完全自动化我来了!希望这能帮助一些人自动化他们的闪存过程以及!
https://stackoverflow.com/questions/61689218
复制相似问题