如何通过串口闪存STM32

时间:2016-05-17 05:52:29

标签: linux embedded microcontroller stm32

我有一个STM32F102微控制器,我想通过串口编程。

虽然有一个可用于Windows的闪存,但我想在Linux机器上进行。我尝试用这个脚本

来做

我设置BOOT0 = 1且BOOT1 = 0,重启微控制器。但它不起作用。我得到以下输出

Can't init. Ensure BOOT0=1, BOOT1=0, and reset device
Traceback (most recent call last):
  File "stm32loader.py", line 552, in <module>
    bootversion = cmd.cmdGet()
  File "stm32loader.py", line 140, in cmdGet
    if self.cmdGeneric(0x00):
  File "stm32loader.py", line 137, in cmdGeneric
    return self._wait_for_ack(hex(cmd))
  File "stm32loader.py", line 88, in _wait_for_ack
    raise CmdException("No response to %s" % info)
__main__.CmdException: No response to 0x0

2 个答案:

答案 0 :(得分:10)

以下是一些提示:

  • 在重置/开启电路板之前连接串行电缆。否则一些瞬变会使串行引导加载程序崩溃。

  • 确保使用的是TTL级USB转串口转换器,而不是RS-232电缆。 RS-232具有反转电平,更糟糕的是,其-15V至15V的电压范围可能会烧坏您的STM32。

  • 确保RX和TX正确连接。

  • 请尝试使用stm32flash

  • 我记得大多数STM32的串行引导加载程序不支持高于115200的波特率。引导加载程序可以自动检测波特率,我通常使用的是57600。

答案 1 :(得分:-1)

其中一些芯片装有锁定的引导加载程序。您需要使用STM32 Flash loader demonstrator删除保护。 Windows不幸但是一旦解锁就可以使用任何一台机器。

相关问题