初级会员

- 积分
- 154
- 金钱
- 154
- 注册时间
- 2014-5-15
- 在线时间
- 54 小时
|
20金钱
RT,请教下,为啥STM32L051擦除FLASH时这个标志位一直被置位。
使用的是HAL库,CUBE生成的工程,测试代码如下:
FLASH_EraseInitTypeDef my_flash;
uint32_t PageError = 0; //设置PageError,如果出现错误这个变量会被设置为出错的FLASH地址
while(HAL_FLASH_Unlock() != HAL_OK);
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP | FLASH_FLAG_PGAERR | FLASH_FLAG_WRPERR | FLASH_FLAG_SIZERR | FLASH_FLAG_OPTVERR | FLASH_FLAG_RDERR | FLASH_FLAG_FWWERR | HAL_FLASH_ERROR_NOTZERO);
my_flash.TypeErase = FLASH_TYPEERASE_PAGES; //标明Flash执行页面只做擦除操作
my_flash.PageAddress = 0x0800FC00;//0x08000000;//; //声明要擦除的地址
my_flash.NbPages = 1; //说明要擦除的页数,此参数必须是Min_Data = 1和Max_Data =(最大页数-初始页的值)之间的值
while (HAL_FLASHEx_Erase(&my_flash, &PageError) == HAL_OK);
HAL_FLASH_Lock();
仿真运行后这个标志位一直置1,换了3个芯片还是一样,没搞懂,望大家能帮忙指导下
|
|