linux – 如何通过串口闪存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

解决方法

以下是一些提示

>在重置/打开电路板之前连接串行电缆.否则一些瞬态可能会破坏串行引导加载程序.
>确保使用的是TTL级USB转串口转换器,而不是RS-232电缆. RS-232具有反转电平,更糟糕的是,其-15V至15V的电压范围可以烧毁您的STM32.
>确保RX和TX连接正确.
>尝试使用stm32flash.>我记得大多数STM32的串行引导加载程序不支持高于115200的波特率.引导加载程序可以自动检测波特率,我通常使用的是57600.

相关文章

在Linux系统中,设置ARP防火墙可以通过多种方法实现,包括使...
在Linux环境下,使用Jack2进行编译时,可以采取以下策略来提...
`getid`命令在Linux系统中用于获取当前进程的有效用户ID(EU...
在Linux环境下,codesign工具用于对代码进行签名,以确保其完...
Linux中的`tr`命令,其英文全称是“transform”,即转换的意...
Linux中的ARP防火墙是一种用于防止ARP欺骗攻击的安全措施,它...