
在进行使用串口升级,下载程序时,有一个步骤是解除flash的写保护。在此过程中是基本上按照官方例程的实现的,包括了flash、选项字节的解锁、清除错误标志位等等。但是在每次进行解除时都出现解除失败(一次都没成功),通过调试发现打断点,发现似乎是因为SR->PGSERR = 1,返回错误导致的原因。看了一下芯片的手册,但没有找到具体的原因。(注:在程序中是使用了独立看门狗、窗口看门狗、低功耗STOP、定时器中断) |
STM432G4单片机IAP程序+上位机
关于STM32G474 双BANK的测试问题
STM32G473 flash擦除时程序卡死
STSPIN32G4内部驱动电压输出问题
comp输出用于tim1刹车,消隐源和pwm输出是不是得是同一个TIM?
STM32G431内部运放1和2输出连接的ADC为什么不是OPAMP?
workbench6.3.2生成的代码,无法用pilot电机参数识别,无法通讯
stm32G474的flash模式如何判定?single bank 和dual bank
STM32G474高精度定时器HRTIM配置死区互补PWM极端输出问题
hrtim里update reset和reset update同时打开不会互相激励吗,另外为什么现在定时器周期值不用-1了
你先保证编程的操作步骤没有问题。然后在准备擦除和编程前部分对各种错误标志
做一次清零。我看例程里也有这个操作。
另外,STM32G4系列有个专门针对写保护的例程你可以参考下。
\STM32Cube_FW_G4_V1.6.1\Projects\NUCLEO-G474RE\Examples\FLASH\FLASH_WriteProtection
产品开发就是这样,或许不复杂,但在具体实践过程中任一个细节不对都会被卡住。
是的,我也对比了官方的这个例程,和他的操作是一样的。只是在程序中有看门狗,我在测试程序中可以正确对flash进行操作,但在有看门狗的程序中就会失败。
[md]会不会flash编程中发生了看门狗复位?
在每次操作flash,写或者擦除前进行了喂狗。但确实在测试程序里没有使用到看门狗,操作是正确的。