如何通过串口烧写STM32
How to flash STM32 via Serial Port
我有一个 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
这里有一些提示:
在重置/启动开发板之前连接串行电缆。否则一些瞬变会使串行引导加载程序混乱。
确保您使用的是 TTL 电平 USB 转串口转换器,而不是 RS-232 电缆。 RS-232电平反相,更糟糕的是,它的-15V到15V电压范围可以烧掉你的STM32
确保RX和TX连接正确。
请尝试使用 stm32flash
。
我记得大多数STM32的串口bootloader都不支持高于115200的波特率。 bootloader可以自动检测波特率,我常用的是57600.
其中一些芯片在出厂时带有锁定的引导加载程序。您将需要使用 STM32 Flash loader demonstrator 来移除保护。 Windows 不幸的是,一旦解锁,您就可以使用任何机器。
我有一个 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
这里有一些提示:
在重置/启动开发板之前连接串行电缆。否则一些瞬变会使串行引导加载程序混乱。
确保您使用的是 TTL 电平 USB 转串口转换器,而不是 RS-232 电缆。 RS-232电平反相,更糟糕的是,它的-15V到15V电压范围可以烧掉你的STM32
确保RX和TX连接正确。
请尝试使用
stm32flash
。我记得大多数STM32的串口bootloader都不支持高于115200的波特率。 bootloader可以自动检测波特率,我常用的是57600.
其中一些芯片在出厂时带有锁定的引导加载程序。您将需要使用 STM32 Flash loader demonstrator 来移除保护。 Windows 不幸的是,一旦解锁,您就可以使用任何机器。