
在进行使用串口升级,下载程序时,有一个步骤是解除flash的写保护。在此过程中是基本上按照官方例程的实现的,包括了flash、选项字节的解锁、清除错误标志位等等。但是在每次进行解除时都出现解除失败(一次都没成功),通过调试发现打断点,发现似乎是因为SR->PGSERR = 1,返回错误导致的原因。看了一下芯片的手册,但没有找到具体的原因。(注:在程序中是使用了独立看门狗、窗口看门狗、低功耗STOP、定时器中断) |
STM32G473CBUx的模拟地
STM32G474, I2C设备地址,总出现多余地址0x20,是什么原因?
最近在做单极倍频SPWM
为什么STM32G431的串口用不了2.5M的波特率
上电连接USB显示DFU模式
STM32G491RE上电出现DFU模式
STM32G431的3.3V引脚对地电阻变小
STM32G473RC timer8的CCDS bit, Capture/Compare DMA selection.
STM32G431 数据手册上有个图有点不理解
STM32G473RC多个定时器同步的问题
你先保证编程的操作步骤没有问题。然后在准备擦除和编程前部分对各种错误标志
做一次清零。我看例程里也有这个操作。
另外,STM32G4系列有个专门针对写保护的例程你可以参考下。
\STM32Cube_FW_G4_V1.6.1\Projects\NUCLEO-G474RE\Examples\FLASH\FLASH_WriteProtection
产品开发就是这样,或许不复杂,但在具体实践过程中任一个细节不对都会被卡住。
是的,我也对比了官方的这个例程,和他的操作是一样的。只是在程序中有看门狗,我在测试程序中可以正确对flash进行操作,但在有看门狗的程序中就会失败。
[md]会不会flash编程中发生了看门狗复位?
在每次操作flash,写或者擦除前进行了喂狗。但确实在测试程序里没有使用到看门狗,操作是正确的。