簡體   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