STM32软件复位

跳转法实现STM32软件复位:亲测有效2023.03.21

 /**
  * @brief  System reset for software
  * @param  ÎÞ
  * @retval ÎÞ
  */
void soft_reset_do(void)
{
    u32 addr = 0x08000000;//APP_ADDR0;
    u32 base = addr > NVIC_VectTab_FLASH ? NVIC_VectTab_FLASH:NVIC_VectTab_RAM;
    u32 offset = addr - base;
    NVIC_SetVectorTable(base, offset);
    u32 map = *((u32* )addr);
    u32 reset = *((u32*)(addr + 4));
	__set_MSP(map);
    ((void(*)())(reset))();
}

你可能感兴趣的:(stm32,单片机,嵌入式硬件)