我在官方iap上改,在以前103上完成的改都出现一个问题,不光是擦除还是写,总是返回flash_error_program
在代码简化到只剩
FLASH_Unlock();
FLASH_ClearFlag(FLASH_FLAG_PGSERR | FLASH_FLAG_PGPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_WRPERR | FLASH_FLAG_OPERR | FLASH_FLAG_EOP);
FLASH_OB_Unlock();
FLASH_OB_WRPConfig(OB_WRP_Sector_4, DISABLE);
FLASH_OB_WRPConfig(OB_WRP_Sector_5, DISABLE);
FLASH_OB_WRPConfig(OB_WRP_Sector_6, DISABLE);
FLASH_OB_WRPConfig(OB_WRP_Sector_7, DISABLE);
FLASH_EraseSector(FLASH_Sector_4,VoltageRange_3);
FLASH_EraseSector(FLASH_Sector_5,VoltageRange_3);
FLASH_EraseSector(FLASH_Sector_6,VoltageRange_3);
FLASH_EraseSector(FLASH_Sector_7,VoltageRange_3);
也是一样,每一句擦除与设置写保护失效都返回flash_error_program这可能是什么原因呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
刚刚试了下,官方的iap程序也返回一样的错误...真奇怪,难道是硬件错误?可是板子我换了一块还是一样的错误啊...
---------------------------------
还不知道,今晚回去弄下STM32F4的FLASH 模拟EEPROM。
不过发现F4和F1的FLASH差别好大,主要是F4的SECTOR太大了,最小的都是16KB,接下来就是64KB,128KB!!!
我勒个去...得开这么大的内存做缓存,型号F4内存够多,否则只能望洋兴叹了....
看来在STM32F4做FLASH模拟EEPROM,只能具有参考意义,没有实际意义了....
---------------------------------
发现问题了,结果发现是JTAG的问题,如果用jtag调试,不论是单步还是断点,都会发生flash不能擦写的情况(因为jtag可能读写flash导致flash的其中2个错误状态表示一直是高)不过103就没这个问题
一周热门 更多>