我制作了一个 STM32F042k6,电池供电的设备,我想刷 vi DFU 协议。
为此,我断开电池,将 BOOT0 拉到 VCC,然后将设备插入 PC 的 USB3 端口(没有可用的 USB2)。设备无法识别并显示 VID:0000 PID:0002(案例一)
但是,当我第一次连接电池,然后将设备连接到 PC 时,它会毫不费力地被识别(案例 II)。
我面临的问题是我想通过软件中的命令开始跳转到引导加载程序 - 但后来我达到了与我完全相同的条件。
你能帮我确定我违反了正确启动的条件吗?
编辑: 我发现问题的方式是当我实现软件跳转到引导加载程序时。它似乎根本不起作用(VCP 设备消失,并且错误的 <> 设备出现在系统 PID:0002 VID:0000 中)。我想通过拉起 BOOT0 引脚来进入引导加载程序,但我可以看到我只有在电池电源循环时才成功。USB 电源循环导致相同的“失败的描述符”设备。
我怀疑当通过 USB 开机时,booloader 存在一些通信问题,无法建立正确的 PID 和 VID。通过电池供电时 - 不存在此问题。