[英]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.