
在进行使用串口升级,下载程序时,有一个步骤是解除flash的写保护。在此过程中是基本上按照官方例程的实现的,包括了flash、选项字节的解锁、清除错误标志位等等。但是在每次进行解除时都出现解除失败(一次都没成功),通过调试发现打断点,发现似乎是因为SR->PGSERR = 1,返回错误导致的原因。看了一下芯片的手册,但没有找到具体的原因。(注:在程序中是使用了独立看门狗、窗口看门狗、低功耗STOP、定时器中断) |
开发逆变器进行STM32学习,路径如何规划?
F103和G474的180°移相區別
STM32G474 HRTIM Fault 中断的问题
boost电路程序控制
STM32G474RBT3 HRTIME 与 TIM 相位差。
STM32G474 BOOST电路双环PID的用法
STM32G474RET6移相问题
stm32G474 HRTimA和hrtimB给相同的比较值,但是TA正常,TB出现了丢波的情况
怎么用HRTIM输出可变占空比的PWM?
STM32G474使用HRTIME完成两路180度移相问题
你先保证编程的操作步骤没有问题。然后在准备擦除和编程前部分对各种错误标志
做一次清零。我看例程里也有这个操作。
另外,STM32G4系列有个专门针对写保护的例程你可以参考下。
\STM32Cube_FW_G4_V1.6.1\Projects\NUCLEO-G474RE\Examples\FLASH\FLASH_WriteProtection
产品开发就是这样,或许不复杂,但在具体实践过程中任一个细节不对都会被卡住。
是的,我也对比了官方的这个例程,和他的操作是一样的。只是在程序中有看门狗,我在测试程序中可以正确对flash进行操作,但在有看门狗的程序中就会失败。
[md]会不会flash编程中发生了看门狗复位?
在每次操作flash,写或者擦除前进行了喂狗。但确实在测试程序里没有使用到看门狗,操作是正确的。