STM32 IAP遇到的问题总结

总结遇到的问题,会不定时更新;

1. APP 1跳转到APP 2工作不正常,I2C 等无法响应

  分析:a. 设置成APP 1跳转到APP 1,这样就可以利用仿真器进行在线仿真,追溯问题点;

             b. 定位到MX_ADC1_Init()中ADC已经在跳转前被使能;会导致初始化ADC失败,进入到error_handler(),导致程序锁死;

/**
  * @brief  This function is executed in case of error occurrence.
  * @retval None
  */
void Error_Handler(void)
{
  /* USER CODE BEGIN Error_Handler_Debug */
  /* User can add his own implementation to report the HAL error return state */
  __disable_irq();
  while (1)
  {
  }
  /* USER CODE END Error_Handler_Debug */
}

      c. 由于APP 1和APP 2都使用了ADC DMA功能,在跳转前先关闭该功能;

      d. 发现在跳转前的I2C Slave 访问,可能会被再跳转后APP程序执行中断,需防止这种情况出现

解决方案:

      a. 在跳转前关闭所有ADC DMA,其实此时ADC也被关闭,可以使用HAL的HAL_ADC_Stop_DMA(&hadc1);来进行操作。

      a. 在跳转前关闭I2C slave。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值