Я так не понимаю, как этого добиться ... Теоретически это кажется таким простым, но я перепробовал все, что мог придумать, и все связанные примеры, которые я понимаю ...
Итак, я ' 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», если я попробую что-нибудь еще. Спасибо за любую помощь!