Подсказки командной строки STM32 для командной строки (Python) - PullRequest
0 голосов
/ 09 мая 2020

Я так не понимаю, как этого добиться ... Теоретически это кажется таким простым, но я перепробовал все, что мог придумать, и все связанные примеры, которые я понимаю ...

Итак, я ' m пытался автоматизировать процесс прошивки микроконтроллера и обнаружил, что могу использовать интерфейс командной строки STM32 Link в командной строке, а не в служебном приложении (где вам нужно нажимать каждую кнопку индивидуально). Я надеюсь включить это в свой код 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 operation on closed file», если я попробую что-нибудь еще. Спасибо за любую помощь!

1 Ответ

0 голосов
/ 09 мая 2020

Я разобрался!

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 не очень информативно по некоторым вопросам, но обязательно добавить шестнадцатеричный адрес, поскольку без него он не работает. Полная автоматизация, вот и я! Надеюсь, это поможет кому-то автоматизировать и их процесс fla sh!

...