我编写了一个 C++ 代码,通过 c 标准函数系统(const char*)调用/执行 BlueNRG-X_Flasher_Launcher.exe 来对 STB1132-25 BLE 模块进行编程。我对 ST-LINK_CLI.exe 有相同的设置来编程 STM32 控制器。我将正确的参数传递给两个编程工具。我可以成功刷入 BLE 模块和 stm32 控制器。但是当 X_Flasher_Launcher.exe 发生错误时,我总是得到一个返回码 0,我的代码将其解释为成功操作。我没有遇到与 ST-LINK_CLI.exe 相同的问题。当发生一些错误时,它返回 =>1 并且我的代码将其解释为错误。
例如,如果 ST-LINK/V2 编程器未连接或目标未连接,则 ST-LINK_CLI.exe 失败并返回 1 但 BlueNRG-X_Flasher_Launcher.exe 也失败并返回 0。基本上,无论失败或成功,它总是返回 0。
任何人都可以向我建议我应该如何解决这个问题?
我知道 system(const char*) 不是调用外部程序的最佳方式。但我只想有一个可行的解决方案,稍后我将实施 Windows 的解决方案来调用外部程序(例如 createProcess)。
操作系统:Windows 10 编程软件工具:BlueNRG-X_Flasher_Launcher.exe v4.1.0、ST-LINK_CLI.exe v3.1.0
编辑:我指定了错误的返回码。我用正确的值更新了帖子。