你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L431反向初始化TIM导致FLASH->SR寄存器的PGSERR位置1

[复制链接]
Love_ST 提问时间:2021-1-24 10:53 /
     项目要求使用STM32L431内部FLASH存储一些调电保存参数,调试发现第一次将参数写入内部FLASH没有问题,当时当我再次写入时,报错,写入不成功,我调试发现在我写入之前FLASH->SR寄存器中的PGSERR位置1了,导致我擦除失败,我进一步调试发现,在我再次写之前这个标志位就已经置1了。     于是我单步调试发现这个标志置位发生在我调用“__HAL_TIM_DISABLE()”函数时(此函数位于HAL_TIM_Base_DeInit()中)自动置位的,我看手册也没找到产生这个问题的原因,是芯片BUG还是程序BUG?
/** 测试代码 :希望有条件的跑跑看 */
int main(void)
{
  /** 使能电源接口时钟 */
  __HAL_RCC_PWR_CLK_ENABLE();  
  /** Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
  /** 时钟初始化 */
  SystemClock_Config();
/** 下面这个函数会导致PGSERR置位 */
  HAL_TIM_Base_DeInit(&TimHandle);
  HAL_Delay(1000);
  DEBUG("Run!!!\n");
  for(;;)
  {
  }




tim1.png
tim2.png
stflash1.png
收藏 评论0 发布时间:2021-1-24 10:53

举报

0个回答

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版