繁体   English   中英

Flash 更新后的 STM32F030 系统复位

[英]STM32F030 System Reset after Flash update

在 STM32F030 controller 中,我想在 Flash memory 上写入某些变量。 此外,在运行时,这些变量可能会发生变化。 因此,当检测到变量值发生变化时,我将擦除 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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM