STM32F030 Flash更新后系统复位



在STM32F030控制器中,我想在闪存上写入某些变量。而且,在运行时,这些变量可能会被更改。因此,当检测到变量的值发生变化时,我将擦除flash并再次写入。

:每次检测到变量更新时,我需要做系统重置吗?

下面是我的代码。

void FlashWrite(void)
{
//Channel A
SlaveHolding_New[0] = SlaveHoldingReg[0];
if(SlaveHolding_Prev[0]!=SlaveHolding_New[0])
{
Flash_Erase();
Flash_WORD_Write(FLASH_ADD_CH1, SlaveHolding_New[0]);
Flash_WORD_Write(FLASH_ADD_CH2, SlaveHolding_New[1]);
Flash_WORD_Write(FLASH_ADD_CH3, SlaveHolding_New[2]);
Flash_WORD_Write(FLASH_ADD_CH4, SlaveHolding_New[3]);
SlaveHolding_Prev[0] = SlaveHolding_New[0];
//HAL_NVIC_SystemReset();
}

只有在应用程序重新启动时才需要复位MCU。

更新某些flash扇区中的变量不需要重新启动应用程序。但是,请确保应用程序知道此更新,以便读取新值。如果读取操作仅在启动时执行,则需要复位MCU。

最新更新