首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STM32命令行()

STM32命令行()
EN

Stack Overflow用户
提问于 2020-05-08 22:35:58
回答 1查看 1.1K关注 0票数 0

我对如何实现这一目标感到迷茫。理论上似乎很简单,但我已经试过了我能想到的一切,以及我所理解的所有相关的例子。

因此,我试图自动执行闪烁微控制器的过程,发现我可以在命令提示符中使用STM32链接CLI,而不是实用程序(您必须单独单击每个按钮)。我希望把它合并到我的Python代码中,在那里我测试我正在闪现的板,以便完全自动化整个过程。

我今年才开始编码所以我对此有点陌生.我可以在命令终端中输入以下内容:

代码语言:javascript
复制
"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中复制这一行:

代码语言:javascript
复制
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')

似乎什么都没做..。

我尝试使用子进程,因为我已经看到它是一个强大的工具,但似乎找不出如何在这个实例中使用它。迄今取得的进展:

代码语言:javascript
复制
p = Popen(['ST-LINK_CLI.exe'], stdout=PIPE, stdin=PIPE, stderr=PIPE, shell=True)
stdout_data = p.communicate(input='enter')[0]

如果我尝试其他操作,它会读出"ValueError:关闭文件上的I/O操作“。谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-08 22:43:21

我想出来了!

代码语言:javascript
复制
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软件手册在某些方面没有很好的描述性,但是必须添加十六进制地址,因为没有十六进制地址就无法工作。完全自动化我来了!希望这能帮助一些人自动化他们的闪存过程以及!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61689218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档